//配置信息
AWSBasicSessionCredentialsProvider *provider = \[AWSBasicSessionCredentialsProvider allocinitWithAccessKey:accessKeyId secretKey:accessKeySecret sessionToken:securityToken];
AWSEndpoint *endpoint = \[AWSEndpoint allocinitWithRegion:AWSRegionUnknown service:AWSServiceS3 URL:bucketURL];
AWSServiceConfiguration *configuration = \[AWSServiceConfiguration allocinitWithRegion:AWSRegionUSEast2 endpoint:endpoint credentialsProvider:provider];
\[AWSServiceManager defaultServiceManagersetDefaultServiceConfiguration:configuration];
AWSS3 *s3 = AWSS3 defaultS3;
//请求信息
AWSS3PutObjectRequest *putRequest = \[AWSS3PutObjectRequest allocinit];
putRequest.bucket = bucket;
putRequest.key = key;
//获取文件的大小
NSDictionary *fileAttributes = \[NSFileManager defaultManagerattributesOfItemAtPath:videoUrl.path error:nil];
if (fileAttributes) {
NSNumber *fileSize = fileAttributes objectForKey:NSFileSize;
//要上传内容的大小
putRequest.contentLength = fileSize;
}
//上传的内容,可以是data也可以是URL
putRequest.body = videoUrl;
if(type isEqualToString:@"1"){//视频
putRequest.contentType = @"video/mp4";
putRequest.body = videoUrl;
}else if (type isEqualToString:@"0"){//图片
putRequest.contentType = @"image/jpeg";
NSData *dataBody = UIImageJPEGRepresentation(image, 0.5);
putRequest.body = dataBody;
putRequest.contentLength = NSNumber numberWithLong:dataBody.length;
}
putRequest.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) {
// totalBytes: data.length 数据的总长度
// totalBytesSent: 已完成的长度
};
[s3 putObject:putRequest completionHandler:^(AWSS3PutObjectOutput * _Nullable response, NSError * _Nullable error) {
if (error) {
}else{
}
}];