我一直在试图弄清楚如何使用适用于AWS的iOS SDK将目录上载到S3一段时间。我一直不得不上传我上传的目录。在我的EC2服务器上使用s3cmd,我可以上传目录没有问题。我也读过使用其他SDK的可能性。以递归方式上传目录iOS AWS S3
这是代码我现在有(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文件的路径,它上传没问题。
有谁知道正确的方式上传目录到s3使用他们的iOS SDK?
在本文中为了更好的可读性而修改我的代码时,我不小心忽略了那部分。在我的实际项目中,我就是这么称呼它的。 – kakkman