//配置信息
AWSBasicSessionCredentialsProvider *provider = [[AWSBasicSessionCredentialsProvider alloc]initWithAccessKey:accessKeyId secretKey:accessKeySecret sessionToken:securityToken];
AWSEndpoint *endpoint = [[AWSEndpoint alloc]initWithRegion:AWSRegionUnknown service:AWSServiceS3 URL:bucketURL];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc]initWithRegion:AWSRegionUSEast2 endpoint:endpoint credentialsProvider:provider];
[[AWSServiceManager defaultServiceManager]setDefaultServiceConfiguration:configuration];
AWSS3 *s3 = [AWSS3 defaultS3];
//请求信息
AWSS3PutObjectRequest *putRequest = [[AWSS3PutObjectRequest alloc]init];
putRequest.bucket = bucket;
putRequest.key = key;
//获取文件的大小
NSDictionary *fileAttributes = [[NSFileManager defaultManager]attributesOfItemAtPath: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{
}
}];