• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将文件从 iOS 上传到 Amazon S3

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:56:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试将使用 UIImagePickerController 录制的短视频上传到 Amazon S3。我正在关注看似简单的 Amazon 示例代码,但我的文件没有出现在我的存储桶中。

我正在记录委托(delegate)方法,奇怪的是 totalBytesWritten 小于 totalBytesExpected。

这是我的代码:

AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:AWS_ACCESS_KEY withSecretKey:AWS_SECRET_KEY];
S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey"test.mov" inBucket"mybucket"];
por.contentType = @"video/quicktime";
NSData *videoData = [NSData dataWithContentsOfURL:videoURL];
por.data = videoData;
por.delegate = self;
[s3 putObject:por];

获得任何响应的唯一委托(delegate)方法是报告字节。其他人没有被调用。

更新

如果文件非常小,它实际上可以工作。一个 110000 字节的文件上传正常。它每次都停在 196608 字节处。如果文件小于它就会上传。



Best Answer-推荐答案


所以这里有两个问题。由于文件很大,我切换到使用 S3TransferManager 我还设置了至关重要的端点。最终代码为:

AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:AWS_ACCESS_KEY withSecretKey:AWS_SECRET_KEY];
s3.endpoint = [AmazonEndpoints s3Endpoint:US_WEST_2];
S3TransferManager *transferManager = [S3TransferManager new];
transferManager.s3 = s3;
transferManager.delegate = self;
s3.endpoint = [AmazonEndpoints s3Endpoint:US_WEST_2];
NSData *videoData = [NSData dataWithContentsOfURL:_videoURL];
[transferManager uploadData:videoData bucket"bucketname" key"test.mov"];

关于ios - 将文件从 iOS 上传到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725160/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap