java - 使用 API 在 Amazon S3 存储桶中创建文件夹/上传文件

标签 java amazon-s3 amazon

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

1st - 我正在尝试在我已经创建并获得凭据的 Amazon S3 存储桶中创建一个文件夹。

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

据我所知,我可以使用 putObjectRequest() 方法来完成我的两项任务。

PutObjectRequest(bucketName, keyName, file) 

用于上传文件。

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

PutObjectRequest(String bucketName, String key, InputStream input,
        ObjectMetadata metadata) 

只是创建一个文件夹。我正在为 InputSteam 和 ObjectMetadata 苦苦挣扎。我不知道这到底是做什么用的,我该如何使用它。

如有任何帮助,我们将不胜感激。 :)

最佳答案

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

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

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

只需放入一个带有该键的对象,文件夹就会自动创建。 (实际上,这不是真的,因为没有文件夹,但这是想象这个概念的一种很好的简单方法。)

至于使用哪个功能...总是使用满足您需要的最简单的功能。因此,只需使用 PutObjectRequest(bucketName, keyName, file)

关于java - 使用 API 在 Amazon S3 存储桶中创建文件夹/上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35080393/

相关文章:

java - Apache Commons 配置文件位置策略

amazon-web-services - Web 应用程序通常如何与 Amazon S3 交互?

audio - 跨站点 swf 加载和播放 mp3

android - 以编程方式检查 Fire OS 版本

c++ - AWS : cannot execute binary file

java - Vaadin 图片上传路径

java - Spring 启动 : Exclude dependencies on packaging

ios - 如何在 iOS 上使用 S3 区分已完成的请求?

database-design - DynamoDB + 将值存储为项目或 JSON

java - 如何从 Java 9 中的另一个模块添加到 JavaFX Scene 样式表?