gpt4 book ai didi

ios - Amazon iOS SDK S3 上传分段请求因神秘 URL 失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:20 25 4
gpt4 key购买 nike

我的应用程序正在实现一种描述为 here 的技术,以允许从 iPhone 通过 3G 连接进行分段文件上传。我也设法将委托(delegate)插入到操作中,并且我可以监控上传进度。但是,上传完成后,文件根本不存在。

深入挖掘后,我发现 SDK 中似乎存在格式错误的 URL。这是相关代码:

__strong AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:kS3Access withSecretKey:kS3Secret];
s3.timeout = 240;

s3ResponseHandler = [[S3ResponseHandler alloc] init];

S3InitiateMultipartUploadRequest *initReq = [[S3InitiateMultipartUploadRequest alloc] initWithKey:[filePath lastPathComponent] inBucket:kS3Bucket];

initReq 对象最终继承自具有 url 属性的 S3Request。在以下几行中,我记录了我的 [filePath lastPathComponent] 和该 url 属性的值:

NSLog(@"filePath lastComp: %@", [filePath lastPathComponent]);
NSLog(@"initReq URL: %@", [initReq url]);

结果:

filePath lastComp: filename.ext
initReq URL: https://<bucketname>.(null)/filename.ext

我认为 URL 应该是 https://bucketname.s3.amazonaws.com ,而不是 (null)。

如果这是 SDK 用于推送我的上传的 URL,那么它显然无法正常工作!谁能建议我可以采取哪些故障排除步骤来进一步诊断此问题和解决方法?这几乎感觉像是 SDK 中的一个错误,但我对自己的信任远不止于此。

我使用的是当前(截至撰写本文时)1.3.0 版本的 SDK。

最佳答案

感谢 Amazon AWS 的支持,我设法解决了这个问题。完整的帖子是here ,但这是留给子孙后代的坚果。

事实证明,当您支持分段上传时,文件必须大于 5MB,最后一部分除外。我假设第一部分也可能是最后一部分。所以现在我有一个简单的测试语句:小于 5MB 的文件将使用“单一放置对象请求”上传(根据我问题中的链接),而较大的文件将分为多个部分。就像一个魅力。

关于ios - Amazon iOS SDK S3 上传分段请求因神秘 URL 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com