gpt4 book ai didi

ios - 递归上传目录 iOS AWS S3

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

我一直在尝试弄清楚如何使用适用于 AWS 的 iOS SDK 将目录上传到 S3。

目前,我不得不对我上传的目录进行 .zip 压缩。在我的 EC2 服务器上使用 s3cmd,我可以毫无问题地上传目录。我还了解到可以使用其他 SDK。

这是我现在的代码(swift):

let folderPath = DocumentFolder.stringByAppendingString("/folderPath/folder")
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.bucket = "my-bucket"
uploadRequest.serverSideEncryption = AWSS3ServerSideEncryption.AwsKms
uploadRequest.body = NSURL(fileURLWithPath: folderPath)
uploadRequest.key = "/\(folderName)/"


AWSS3TransferManager.defaultS3TransferManager().upload(uploadRequest)

但是,这导致我收到 NSInvalidArgumentException。

这是确切的错误:

2016-02-26 15:11:10.672 Q-Gate[1002:417054] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSConcreteData initWithBytes:length:copy:deallocator:]: absurd length: 18446744073709551615, maximum size: 9223372036854775808 bytes' *** First throw call stack: (0x181e55900 0x1814c3f80 0x181e55848 0x182743ef4 0x182743e38 0x1001ccdd0 0x1001cd7fc 0x18242287c 0x182420eb4 0x182420d74 0x182420ca4 0x1824a6ee4 0x182420c30 0x101e81bb0 0x101e8b354 0x182417a88 0x181d390ac 0x18241796c 0x18241782c 0x182417658 0x181e0cefc 0x181e0c990 0x181e0a690 0x181d39680 0x1824a9434 0x182817c40 0x181abfb28 0x181abfa8c 0x181abd028) libc++abi.dylib: terminating with uncaught exception of type NSException

如果我更改 .zip 的路径,上传没有问题。

有人知道使用他们的 iOS SDK 将目录上传到 s3 的正确方法吗?

最佳答案

您不能将目录作为body 传递。您需要递归地列出目录中的文件并为每个文件调用-upload:


AWSS3TransferManager() 不是此类的有效初始化程序。异常的原因

`- init` is not a valid initializer. Use `+ defaultS3TransferManager` or `+ S3TransferManagerForKey:` instead.

您需要使用 AWSS3TransferManager.defaultS3TransferManager()AWSS3TransferManager(forKey: "YourKey")。阅读API docs了解更多详情。

关于ios - 递归上传目录 iOS AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660052/

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