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应用程序不会从该桶中加载任何图像。

如果我硬编码生产桶url或互联网上的任何其他图像,它仍然会加载图像,只是没有来自新桶的任何图像。

两个桶的权限基本相同,唯一的区别是一个在区域下,一个是俄勒冈,另一个是美国标准。

任何想法

我找到问题了。

S3允许您在url的不同位置附加桶名,因此您可以从浏览器上的这两个不同url访问相同的图像

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,桶名包含'_',那么您将从volley(或java)获得错误。

希望能有所帮助

只是为了添加到接受的答案:

这个错误的原因是桶名。Amazon s3不鼓励在桶名中使用"_"

s3桶名的命名约定

最新更新