【发布时间】:2013-01-26 17:21:46
【问题描述】:
我有大量文件需要从 S3 存储桶下载。我的问题类似于this article,除了我试图在 Java 中运行它。
public static void main(String args[]) {
AWSCredentials myCredentials = new BasicAWSCredentials("key","secret");
TransferManager tx = new TransferManager(myCredentials);
File file = <thefile>
try{
MultipleFileDownload myDownload = tx.downloadDirectory("<bucket>", null, file);
System.out.println("Transfer: " + myDownload.getDescription());
System.out.println(" - State: " + myDownload.getState());
System.out.println(" - Progress: " + myDownload.getProgress().getBytesTransfered());
while (myDownload.isDone() == false) {
System.out.println("Transfer: " + myDownload.getDescription());
System.out.println(" - State: " + myDownload.getState());
System.out.println(" - Progress: " + myDownload.getProgress().getBytesTransfered());
try {
// Do work while we wait for our upload to complete...
Thread.sleep(500);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
} catch(Exception e){
e.printStackTrace();
}
}
这改编自 TransferManager 类示例,用于多次上传。此存储桶中有超过 100,000 个对象。任何帮助都会很棒。
【问题讨论】:
-
你的问题是什么,上面的代码不起作用吗?
-
不,它没有。我的问题是我是否遗漏了什么。我对 SDK 很陌生,所以我不知道是否还有更多需要。对
tx.downloadDirectory("<bucket>", null, file);的调用不会返回,并且它永远不会移动到while 循环。 SDK 没有谈论这是否是一个阻塞调用,所以我不知道我是否做得对,因为我没有从调用中得到任何反馈。它确实从我的存储桶中的目录创建了一个目录,但随后它停止了。
标签: java amazon-web-services amazon-s3 download amazon