我有一个工作设置,可以从 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 或互联网上的任何其他图像进行硬编码,它仍会加载图像,而不是来自新桶的任何图像。也不会抛出任何错误消息。
这两个bucket的权限几乎是一样的,两个bucket唯一的区别就是一个在region下,一个是Oregon,一个是US Standard。
任何想法
最佳答案
好的,我发现了问题。
S3 允许您在 url 的不同位置附加您的存储桶名称,因此您可以在浏览器上从这两个不同的 url 访问相同的图像
http://bucketname.s3.amazonaws.com/images/thumb/image_name.png (域名_url)
或
http://s3.amazonaws.com/bucketname/images/thumb/image_name.png (路径网址)
如果桶名全是字符,这两种方法都可以正常工作。但是,如果使用 domain_url,存储桶名称包含“_”,那么您将收到来自 volley(或 java)的错误。
希望对你有帮助
关于Amazon S3 上的 Android Volley 异步加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834364/