簡體   English   中英

使用API​​在amazon S3存儲桶中創建文件夾/上傳文件

[英]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,上傳文件類似,你可以從本地文件中獲取輸入流。

或者,您可以使用[minio client] java庫

您可以按照MakeBucket.java示例創建一個桶和PutObject.java示例來添加對象。

希望它有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM