Java 使用API在amazon S3 bucket中创建文件夹/上载文件

Java 使用API在amazon S3 bucket中创建文件夹/上载文件,java,amazon-s3,amazon,Java,Amazon S3,Amazon,我是亚马逊和java的新手。 我在这里尝试两件事 1-我正在尝试在我的AmazonS3存储桶中创建一个文件夹,我已经创建了该文件夹,并且已经获得了该文件夹的凭据 第二个-我正在尝试将文件上载到此存储桶 根据我的理解,我可以使用putObjectRequest()方法来完成这两项任务 PutObjectRequest(bucketName, keyName, file) 用于上载文件 我不确定我是否应该使用这种方法 PutObjectRequest(String bucketName, Str

我是亚马逊和java的新手。 我在这里尝试两件事

1-我正在尝试在我的AmazonS3存储桶中创建一个文件夹,我已经创建了该文件夹,并且已经获得了该文件夹的凭据

第二个-我正在尝试将文件上载到此存储桶

根据我的理解,我可以使用putObjectRequest()方法来完成这两项任务

PutObjectRequest(bucketName, keyName, file) 
用于上载文件

我不确定我是否应该使用这种方法

PutObjectRequest(String bucketName, String key, InputStream input,
        ObjectMetadata metadata) 
仅用于创建文件夹。我正在努力输入蒸汽和对象元数据。我不知道这到底是干什么用的,我怎么能用它


任何帮助都将不胜感激。:)

您不需要在AmazonS3中创建文件夹。事实上,文件夹并不存在

相反,键(文件名)包含完整路径和对象名

例如,如果名为
cat.jpg
的文件位于
animates
文件夹中,则键(文件名)为:
animates/cat.jpg

只需使用该键放置一个对象,文件夹就会自动创建。(事实上,这不是真的,因为没有文件夹,但这是一个很好的简单方式来想象这个概念。)


至于使用哪个函数。。。始终使用满足您需求的最简单的。因此,只需使用PutObjectRequest(bucketName、keyName、file)

是的,您可以使用PutObjectRequest(bucketName、keyName、file)来完成这两项任务

1、创建S3文件夹
使用AWS S3 Java SDK,只需在密钥名称的末尾添加“/”即可创建空文件夹

var folderKey =  key + "/"; //end the key name with "/"
示例代码:

final InputStream im = new InputStream() {
      @Override
      public int read() throws IOException {
        return -1;
      }
    };
    final ObjectMetadata om = new ObjectMetadata();
    om.setContentLength(0L);
    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, im, om);
    s3.putObject(putObjectRequest);
2、上传文件 同样,您可以从本地文件获取输入流。

或者您可以使用java库

您可以按照下面的示例创建一个bucket&例如添加一个对象

希望能有所帮助