Amazon S3上的Android Volley异步加载程序

时间:2014-05-23 16:35:55

标签: android amazon-s3 android-volley

我在应用程序中从AWS S3服务器上进行了一次有关齐射加载图像的工作设置。

然后我创建了一个新存储桶来托管登台服务器的映像,并将所有映像迁移到该文件夹​​中。登台服务器设置为将更新的URL输出到应用程序。

即。 http://production.s3.amazonaws.com/images/thumb/123_myfile.jpg?1400162334 成为 http://staging.s3.amazonaws.com/images/thumb/123_myfile.jpg?1400162334

我可以从iOS应用程序或办公室中的任何浏览器加载新存储桶中的图像,但Android应用程序不会从该存储桶加载任何图像。

如果我对生产存储桶网址或互联网上的任何其他图像进行硬编码,它仍将加载图像,而不是新存储桶中的任何图像。什么都没有丢弃任何错误消息。

两个存储桶的权限几乎相同,两个存储桶之间的唯一区别是一个位于区域内,一个位于俄勒冈州,另一个位于美国标准位置。

任何想法

2 个答案:

答案 0 :(得分:2)

好的,我发现了问题。

S3允许您将您的存储桶名称附加到网址中的不同位置,因此您可以从浏览器上的这两个不同的网址访问相同的图像

http://bucketname.s3.amazonaws.com/images/thumb/image_name.png(domain_url)

http://s3.amazonaws.com/bucketname/images/thumb/image_name.png(path_url)

如果存储桶名称是所有字符,则在两种方法中都可以正常工作。但是,如果使用domain_url,则存储桶名称包含' _'然后你会从凌空(或java)中得到错误。

希望这有帮助

答案 1 :(得分:0)

只是添加到接受的答案:

此错误的原因是存储桶名称。亚马逊s3不鼓励在存储桶名称中使用“_”。

s3 Bucket名称Bucket Naming Conventions

的命名约定