使用 API 在 Amazon S3 存储桶中创建 folder/uploading 文件
creating a folder/uploading a file in amazon S3 bucket using API
我是亚马逊的新手 java。
我在这里尝试两件事。
1st - 我正在尝试在我已经创建并获得凭据的 Amazon S3 存储桶中创建一个文件夹。
2nd - 我正在尝试将文件上传到此存储桶。
据我了解,我可以使用 putObjectRequest() 方法来完成我的两项任务。
PutObjectRequest(bucketName, keyName, file)
用于上传文件。
我不确定我是否应该使用这个方法
PutObjectRequest(String bucketName, String key, InputStream input,
ObjectMetadata metadata)
只创建一个文件夹。我正在为 InputSteam 和 ObjectMetadata 苦苦挣扎。我不知道这到底是做什么用的,我该如何使用它。
如有任何帮助,我们将不胜感激。 :)
您不需要在 Amazon S3 中创建文件夹。事实上,文件夹并不存在!
相反,密钥(文件名)包含完整路径和对象名称。
例如,如果名为 cat.jpg
的文件位于 animals
文件夹中,则密钥(文件名)为:animals/cat.jpg
只需 Put
具有该键的对象和文件夹就会自动创建。 (实际上,这不是真的,因为没有文件夹,但这是想象这个概念的一个很好的简单方法。)
至于使用哪个功能...总是使用满足您需要的最简单的功能。因此,只需使用 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、正在上传文件
类似的,你可以从你的本地文件中获取输入流。
或者您可以使用 [minio client] java 库
您可以按照 MakeBucket.java example to create a bucket & PutObject.java 示例添加对象。
希望对您有所帮助。
我是亚马逊的新手 java。 我在这里尝试两件事。
1st - 我正在尝试在我已经创建并获得凭据的 Amazon S3 存储桶中创建一个文件夹。
2nd - 我正在尝试将文件上传到此存储桶。
据我了解,我可以使用 putObjectRequest() 方法来完成我的两项任务。
PutObjectRequest(bucketName, keyName, file)
用于上传文件。
我不确定我是否应该使用这个方法
PutObjectRequest(String bucketName, String key, InputStream input,
ObjectMetadata metadata)
只创建一个文件夹。我正在为 InputSteam 和 ObjectMetadata 苦苦挣扎。我不知道这到底是做什么用的,我该如何使用它。
如有任何帮助,我们将不胜感激。 :)
您不需要在 Amazon S3 中创建文件夹。事实上,文件夹并不存在!
相反,密钥(文件名)包含完整路径和对象名称。
例如,如果名为 cat.jpg
的文件位于 animals
文件夹中,则密钥(文件名)为:animals/cat.jpg
只需 Put
具有该键的对象和文件夹就会自动创建。 (实际上,这不是真的,因为没有文件夹,但这是想象这个概念的一个很好的简单方法。)
至于使用哪个功能...总是使用满足您需要的最简单的功能。因此,只需使用 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、正在上传文件 类似的,你可以从你的本地文件中获取输入流。
或者您可以使用 [minio client] java 库
您可以按照 MakeBucket.java example to create a bucket & PutObject.java 示例添加对象。
希望对您有所帮助。