Моя цель — загружать видеофайлы, снятые с устройства в исходном разрешении, на S3 с помощью AWSS3TransferUtility.
Пользователь выбирает видео, используя UIImagePickerController
, однако, если я передаю info[UIImagePickerControllerMEDIAURL]
в TransferUtility, он всегда уменьшает видео до 720p. Если я передаю утилиту переноса info[UIImagePickerControllerREFERENCEURL]
, я получаю сообщение об ошибке:
Операция не может быть завершена. (com.amazonaws.AWSS3TransferUtilityErrorDomain ошибка 4.)
Не могу найти объяснение кода ошибки, поэтому я предполагаю, что это ошибка разрешений, потому что я не получаю доступ к ресурсу через структуру Фото или PHAsset.fetch
СПРАВОЧНЫЙ URL-адрес - assets-library://asset/asset.mov?id=5B99DC8E-B94E-4CBF-AFB8-7F82BC72FEE2&ext=mov
URL-адрес МЕДИА — файл:///private/var/mobile/Containers/Data/Application/76928AD7-F142-4CC9-9708-A58C8CAF8EE5/tmp/trim.82038B6A-222F-4B50-A937-A8C399B02A08.MOV
Теперь у меня есть ReferenceURL, и я пытаюсь получить PHAsset, чтобы скопировать его в Documents Directory и передать оттуда URL-адрес в TransferUtility, чтобы обойти ошибку AWSS3TransferUtilityErrorDomain 4.
Однако fetchAssets(withALAssetURLs:options:) устарел, поэтому я не могу получить ресурс с помощью ReferenceURL; все остальные методы — это пакетная выборка через тип носителя и т. д. options:) но я не уверен, как получить локальный идентификатор PHAsset только из URL-адреса.