使用ImageLoader从AWS url android下载图像
目的:尝试显示存储在AWS中的图像。向上/向下拉时,GridView中将显示12个图像。我可以通过以下方式下载图像:使用ImageLoader从AWS url android下载图像,android,amazon-web-services,amazon-s3,universal-image-loader,Android,Amazon Web Services,Amazon S3,Universal Image Loader,目的:尝试显示存储在AWS中的图像。向上/向下拉时,GridView中将显示12个图像。我可以通过以下方式下载图像: try { InputStream in = new java.net.URL(url).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Error",
try {
InputStream in = new java.net.URL(url).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
bmImage.setImageBitmap(mIcon11);
这意味着url可以工作。然而,问题是当我将url传递给图像加载器时,它会显示以下错误:(我将url中的键和其他内容替换为“something”。)
如何使用图像加载器下载aws url?或者有没有其他更好的方式来显示12张或更多来自aws的图像?有人知道吗?非常感谢你 要从AWS S3 bucket下载图像,您需要使用AmazonS3客户端。然后使用awskey和aws密钥,您可以使用以下代码下载任何图像
Resources res = mContext.getResources();
String awsKey = res.getString(R.string.aws_key);
String awsSecretKey = res.getString(R.string.aws_secret_key);
String awsBucketName = res.getString(R.string.aws_bucket_name);
AmazonS3Client s3Client = new AmazonS3Client(
new BasicAWSCredentials(mContext.getResources().getString(R.string.aws_key),
mContext.getResources().getString(R.string.aws_secret_key)));
S3ObjectInputStream content = s3Client.getObject(awsBucketName, url).getObjectContent();
您介意使用库进行下载吗?上面的错误是由于找不到文件造成的。@Nikmeyers您对库有什么建议吗?@InMystream是的,因为我可以使用InputStream in=new java.net.url(url.openStream())使用相同的url下载图像;mIcon11=BitmapFactory.decodeStream(in);我真的不知道AWS中的错误来自哪里,图像(以及它们所在的目录)是否设置为可公开访问?您必须明确设置,无论是在上传到它时,还是通过属性菜单,menuNo都需要基本上使用S3Client从AWS S3下载图像。您也可以使用AWS签名的URL执行此操作,只要S3 URL发送正确的响应头。
Resources res = mContext.getResources();
String awsKey = res.getString(R.string.aws_key);
String awsSecretKey = res.getString(R.string.aws_secret_key);
String awsBucketName = res.getString(R.string.aws_bucket_name);
AmazonS3Client s3Client = new AmazonS3Client(
new BasicAWSCredentials(mContext.getResources().getString(R.string.aws_key),
mContext.getResources().getString(R.string.aws_secret_key)));
S3ObjectInputStream content = s3Client.getObject(awsBucketName, url).getObjectContent();