I'm trying to upload a video from an iOS device's library to AWS.
I have a method called uploadVideo that gets passed an ALAsset asset which I then try to upload as follows:
- (void)uploadVideo:(ALAsset *)asset :(UIImage*)image{
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.bucket = @"test";
NSString *assetFilename = [[asset defaultRepresentation] filename];
if(!assetFilename){
NSDate *now = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"MM-dd-yyyy_HH-mm-ss-SS"];
assetFilename = [dateFormat stringFromDate:now];
}
uploadRequest.key = assetFilename;
uploadRequest.body = asset.defaultRepresentation.url.absoluteURL;
NSLog(@"uploadRequest.body: %@", asset.defaultRepresentation.url.absoluteString);
[[transferManager upload:uploadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor]
withBlock:^id(AWSTask *task) {
if (task.error) {
if ([task.error.domain isEqualToString:AWSS3TransferManagerErrorDomain]) {
switch (task.error.code) {
case AWSS3TransferManagerErrorCancelled:
case AWSS3TransferManagerErrorPaused:
break;
default:
NSLog(@"Error: %@", task.error);
break;
}
} else {
// Unknown error.
NSLog(@"Error: %@", task.error);
}
}
if (task.result) {
AWSS3TransferManagerUploadOutput *uploadOutput = task.result;
// The file uploaded successfully.
NSLog(@"uploaded the file to aws successfully with task result %@", task.result);
}
return nil;
}];
}
I am receiving the error:
Error: Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x1706686c0 {NSFilePath=/asset.mp4, NSUnderlyingError=0x170256170 "The operation couldn’t be completed. No such file or directory"}
But when I log the uploadRequest.body path, it seems to be the full path:
uploadRequest.body: assets-library://asset/asset.mp4?id=01DD578D-6320-430E-BAB4-F339B3EB4D5C&ext=mp4
How do I properly set the body of a selected asset to upload to AWS?
Aucun commentaire:
Enregistrer un commentaire