Java 列出aws bucket中的对象
我试图打印一个桶中的所有对象,但出现了一个错误 线程“main”com.amazonaws.services.s3.model.AmazonS3Exception:状态代码:301,AWS服务:Amazon s3,AWS请求ID:758A7CBF1A29FD74,AWS错误代码:PermanentRedirect,AWS错误消息:您尝试访问的存储桶必须使用指定的端点寻址。请将所有未来的请求发送到此终结点 目前我只有以下代码:Java 列出aws bucket中的对象,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我试图打印一个桶中的所有对象,但出现了一个错误 线程“main”com.amazonaws.services.s3.model.AmazonS3Exception:状态代码:301,AWS服务:Amazon s3,AWS请求ID:758A7CBF1A29FD74,AWS错误代码:PermanentRedirect,AWS错误消息:您尝试访问的存储桶必须使用指定的端点寻址。请将所有未来的请求发送到此终结点 目前我只有以下代码: public class S3Download { /**
public class S3Download {
/**
* @param args
*/
public static void main(String[] args) {
AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider());
Region usWest2 = Region.getRegion(Regions.US_WEST_2);
s3.setRegion(usWest2);
String bucketName = "apireleasecandidate1";
ListObjectsRequest listObjectRequest = new ListObjectsRequest().withBucketName(bucketName);
ObjectListing objectListing;
do{
objectListing = s3.listObjects(listObjectRequest);
for(S3ObjectSummary objectSummary : objectListing.getObjectSummaries()){
System.out.println(" - " + objectSummary.getKey() + " " + "(size = " +
objectSummary.getSize() + ")");
}
listObjectRequest.setMarker(objectListing.getNextMarker());
}while(objectListing.isTruncated());
}
}
我在亚马逊的网站上找到了
有人知道我遗漏了什么吗?看来您的桶“apireleasecandidate1”不在美国西部地区。我认为这是在美国的经典地区。您应该修改代码以删除setRegion()调用。对于Scala开发人员,这里是一个递归函数,用于执行完全扫描并使用官方
import com.amazonaws.services.s3.AmazonS3Client
导入com.amazonaws.services.s3.model.{S3ObjectSummary,ObjectListing,GetObjectRequest}
导入scala.collection.JavaConversions.{collectionAsScalaIterable=>asScala}
defmap[T](s3:AmazonS3Client,bucket:String,prefix:String)(f:(S3ObjectSummary)=>T){
def扫描(acc:List[T],listing:ObjectListing):List[T]={
val summaries=asScala[S3ObjectSummary](listing.getObjectSummaries())
val mapped=(对于(摘要打印项次))
将打印所有文件
val tuple=map(s3,bucket,前缀)(s=>(s.getKey,s.getOwner,s.getSize))
将返回该bucket/前缀中的(键、所有者、大小)
元组的完整列表
val totalSize=map(s3,“bucket”,“prefix”)(s=>s.getSize)
将返回其内容的总大小(请注意在表达式末尾应用的附加sum()
折叠函数;-)
您可以将
map()