我的目标是使用AWSS3TransferUtility将原始分辨率的设备捕获的视频文件上传到S3。
用户使用来选择视频,UIImagePickerController但是,如果我传递info[UIImagePickerControllerMEDIAURL]给transferUtility,它将始终将视频降低到720p。如果我通过transferutility,info[UIImagePickerControllerREFERENCEURL]则会收到错误消息:
该操作无法完成。(com.amazonaws.AWSS3TransferUtilityErrorDomain错误4。)
找不到错误代码的说明,因此我假设这是权限错误,因为我没有通过Photos框架或PHAsset.fetch
REFURLCE URL-assets-library://asset/asset.mov?id = 5B99DC8E-B94E-4CBF-AFB8-7F82BC72FEE2&ext = mov
媒体URL-file:///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来获取资产;所有其他方法都是通过媒体类型等批量获取。有fetchAssets(withLocalIdentifiers:options :),但我不确定如何仅从URL获取PHAsset的本地标识符。