当前位置: 首页 > 知识库问答 >
问题:

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

洪德寿
2023-03-14

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

第一-我试图在我的Amazon S3存储桶中创建一个文件夹,我已经创建并获得了凭据。

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

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

PutObjectRequest(bucketName, keyName, file) 

用于上传文件。

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

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

仅用于创建文件夹。我正在努力学习InputSteam和ObjectMetadata。我不知道这到底是做什么用的,我该怎么用。

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

共有3个答案

傅朝
2023-03-14

或者您可以使用[minio客户端]java库

你可以跟随MakeBucket。创建bucket的java示例

希望它有帮助。

罗乐意
2023-03-14

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

1、创建S3文件夹
使用AWS S3JavaSDK,只需在密钥名称末尾添加“/”,就会创建空文件夹。

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、上传文件也一样,你可以从你的本地文件中获得输入流。

阳枫涟
2023-03-14

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

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

例如,如果名为cat.jpg的文件在动物文件夹中,则Key(filename)为:动物/cat.jpg

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

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

 类似资料:
  • 问题内容: 这是我的问题:我想在/ api / controllers内部创建一些子文件夹,以组织我的源代码。我的问题是,一旦创建新文件夹,蓝图api / routes / actions似乎不再起作用。 从我所有的测试中,如果我将/api/controller/UserController.js更改为/api/controller/newpath/UserController.js,我将无法再获

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。

  • 问题内容: 我有问题让用户通过ajax请求>路由> controller @ method在laravel 4中创建文件夹。 我确实对url调用权方法测试了ajax成功请求。 当我使用或(此方法存在吗?)时,我将得到响应并且无法创建新文件夹..该如何解决? route.php AdminDashboardController js 问题答案: 不,实际上是 另外,您可以尝试以下操作: 更新: 确实

  • 问题内容: 我已经阅读了Node.js的文档,除非我错过了一些内容,否则它不会告诉某些操作(特别是)中包含哪些参数。正如您在文档中看到的那样,它不是很多。 当前,我有以下代码,该代码尝试创建一个文件夹或使用现有的文件夹: 但是我想知道这是正确的方法吗?检查代码是否正确知道文件夹已存在?我知道我可以在创建目录之前执行此操作,但这已经是对文件系统的两次打击。 其次,是否有Node.js的完整或至少更详