[英]creating a folder/uploading a file in amazon S3 bucket using API
我是亞馬遜和java的新手。 我在這里嘗試兩件事。
1st - 我正在嘗試在我已創建的Amazon S3存儲桶中創建一個文件夾,並且已獲取憑據。
第二 - 我正在嘗試將文件上傳到此存儲桶。
根據我的理解,我可以使用putObjectRequest()方法來實現我的兩個任務。
PutObjectRequest(bucketName, keyName, file)
用於上傳文件。
我不確定我是否應該使用這種方法
PutObjectRequest(String bucketName, String key, InputStream input,
ObjectMetadata metadata)
僅用於創建文件夾。 我正在使用InputSteam和ObjectMetadata。 我不知道這究竟是什么,我怎么能用它。
任何幫助將不勝感激。 :)
您無需在Amazon S3中創建文件夾。 實際上,文件夾不存在!
而是, Key (filename)包含完整路徑和對象名稱 。
例如,如果名為cat.jpg
的文件位於animals
文件夾中,則Key(文件名)為: 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,上傳文件類似,你可以從本地文件中獲取輸入流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.