gpt4 book ai didi

android - Amazon AWS SDK Transfermanager 端点区域

转载 作者:行者123 更新时间:2023-11-30 03:33:30 25 4
gpt4 key购买 nike

我想使用 AmazonAWS TransferManager 上传目录。我使用来自 TVM 的凭据成功创建了一个 AmazonS3Client。

当我尝试用它下载文件时,它会提示:

final MultipleFileDownload fileDownloadd=mTransferManager.downloadDirectory(ChanAuth.getBucketName(), remotePath, file);

AWS 错误代码:PermanentRedirect、AWS 错误消息:您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有 future 请求发送到此端点

我读过有关该主题的文章,并且过去曾在其他编程语言中体验过。我记得它与发出 S3 命令时最后“发布”的位置有关(我必须直接发布到我的存储桶 url)。但错误来自 AWS SDK 的深处,应该在那里处理。

我的存储桶位于 EU-WEST-1 区域。

我用

初始化客户端
s3Client.setRegion(Regions....(Region.EU_WEST_1))

s3Client.setEndpoint("s3-eu-west-1.amazonaws.com");

但我总是收到 TransferManager 的提示。

我怀疑这一定是个愚蠢的问题,但我陷入了 AwS SDK 的数百万行和方法中。必须在某个地方正确设置端点,否则 sdk 不适用于美国区域以外的存储桶。

感谢帮助:)

            06-09 20:16:02.810: D/SynchroService(4408): MESSAGE: nicebeat SYNC
06-09 20:16:02.810: D/SynchroService(4408): MESSAGE: downlading from chd68f38e7d1360dc1d999354da4f98601/nicebeat/story/sonidonia to /mnt/sdcard/Android/data/com.regaliz.libneo/files/nicebeat/story/sonidonia/lib
06-09 20:16:02.810: D/SynchroService(4408): is directory? true
06-09 20:16:03.490: W/System.err(4408): AmazonS3Exception: Status Code: 301, AWS Service: Amazon S3, AWS Request ID: 2695AE32DC39077E, AWS Error Code: PermanentRedirect, AWS Error Message: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint., S3 Extended Request ID: j9zQ8EBzkCGHkRTveri82HoA/Yh9PvJofUPtNJlc9oKrVutG0VjNEGG90WnTGaN4
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:633)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:327)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:179)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2980)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2951)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:479)
06-09 20:16:03.490: W/System.err(4408): at com.amazonaws.services.s3.transfer.TransferManager.downloadDirectory(TransferManager.java:588)
06-09 20:16:03.490: W/System.err(4408): at com.regaliz.services.Synchro.downloadDirectory(Synchro.java:156)
06-09 20:16:03.490: W/System.err(4408): at com.regaliz.services.Synchro.request_commands(Synchro.java:99)
06-09 20:16:03.490: W/System.err(4408): at com.regaliz.services.Synchro$3.run(Synchro.java:195)

最佳答案

您需要设置与创建存储桶的位置相匹配的端点。

例如:如果“mybucket”是在 EU 下创建的,对于您正在创建的 s3client,应将端点设置为“s3-eu-west-1.amazonaws.com”。

同样,根据创建存储桶的位置,您可以根据此页面设置端点:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

关于android - Amazon AWS SDK Transfermanager 端点区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012811/

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