我有一个从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桶名的命名约定