当前位置:  开发笔记 > 编程语言 > 正文

如何从Amazon S3下载文件?

如何解决《如何从AmazonS3下载文件?》经验,为你挑选了1个好方法。

我在一个名为output的桶中命名了一个文件夹BucketA.我有一个文件output夹列表.如何使用AWS Java SDK将它们下载到本地计算机?

以下是我的代码:

AmazonS3Client s3Client = new AmazonS3Client(credentials);
        File localFile = new File("/home/abc/Desktop/AmazonS3/");
        s3Client.getObject(new GetObjectRequest("bucketA", "/bucketA/output/"), localFile);

我收到了错误:

AmazonS3Exception: The specified key does not exist.

Bruce P.. 5

请记住,S3不是文件系统,但它是一个对象存储.两者之间存在巨大差异,一个是目录式活动根本不起作用.

假设您有一个带有两个对象的S3存储桶:

/path/to/file1.txt
/path/to/file2.txt

使用这些对象/path/to/时,在处理文件系统目录中的文件时,不能简单地引用.那是因为/path/to/它不是一个目录,而只是一个非常大的哈希表中一个键的一部分.这就是错误消息指示密钥问题的原因.这些不是文件名路径,而是对象库中对象的键.

为了复制/path/to/您需要在多个步骤中执行它的位置中的所有文件.首先,您需要获取其键开头的所有对象的列表/path/to,然后您需要遍历每个单独的对象并逐个复制它们.

这是一个类似的问题,答案显示了如何使用Java从S3下载多个文件.



1> Bruce P..:

请记住,S3不是文件系统,但它是一个对象存储.两者之间存在巨大差异,一个是目录式活动根本不起作用.

假设您有一个带有两个对象的S3存储桶:

/path/to/file1.txt
/path/to/file2.txt

使用这些对象/path/to/时,在处理文件系统目录中的文件时,不能简单地引用.那是因为/path/to/它不是一个目录,而只是一个非常大的哈希表中一个键的一部分.这就是错误消息指示密钥问题的原因.这些不是文件名路径,而是对象库中对象的键.

为了复制/path/to/您需要在多个步骤中执行它的位置中的所有文件.首先,您需要获取其键开头的所有对象的列表/path/to,然后您需要遍历每个单独的对象并逐个复制它们.

这是一个类似的问题,答案显示了如何使用Java从S3下载多个文件.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有