Amazon S3 上的 Android Volley 异步加载器

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

如果我对生产桶 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/

相关文章:

android - 如何在android中将电话号码格式转换为普通号码

java - 我想通过 putobjectrequest 使用 java 将文本文件写入 s3 存储桶

amazon-web-services - 基于 S3 存储桶的 AWS Cloudfront 分发,跨账户对象被拒绝访问

java - 我从 Volley 响应 'Android way' 更新 textview 的方法是否正确?

java - 在 volley 中发送 int 和 String 作为参数

javascript - Android webview 无法正常显示

javascript - android studio 中的错误 getMap() map.setMyLocationEnabled(true);

java - 将字符串数据 append (添加)到 Android 应用程序中的 SD 卡文本文件

csv - 亚马逊雅典娜 : Dateparse shows Invalid Format

java - google volley 单例真的线程安全吗?