aws 的 s3 put_object vs upload_file


用過aws的人,都知道s3存儲東西賊方便。

他的上傳有兩個方法,

 

第一個是get_object(),是將文件的內容賦值給body,進行上傳,並設置存儲桶為上傳文件為公開

response = s3.put_object(Bucket=bucket_tmp, Key=file_key, Body=content, ACL="public-read-write")

然后點擊對應的文件路徑,就有一個下載的s3對象url進行下載,如下圖所示,會自動彈出:

 

 

 

第二個是upload_file

s3.upload_file(filename, bucket, key, callback, extra_args)

這種方法,就是上傳的時候只需要填入文件的名稱就可以實現上傳,但是貌似不能設置這個文件的公開需要去配置s3的存儲桶信息,那應該怎么辦呢,我也沒花時間研究,就直接很暴力看了文檔,可以這么操作。

 

First: (這里注意一下使用第一種的上傳方式,也要設置桶公開哈)

 

 

 

 Second:是設置文件的公開:點擊權限->點擊存儲桶策略,插入一下信息,

首先點擊策略生成器,根據自己需要開通的權限,選擇即可或者通過文檔自己來編碼這個json信息,然后將結果回填,保存即可!

 

 

可以參考這么寫,兩種上傳都各有千秋,可以根據具體選擇來做!

{
    "Version": "2012-10-17",
    "Id": "ExamplePolicy01",
    "Statement": [
        {
            "Sid": "ExampleStatement01",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws-cn:iam::Account-ID:user/Dave"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws-cn:s3:::examplebucket/*",
                "arn:aws-cn:s3:::examplebucket"
            ]
        }
    ]
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM