2015-09-04 60 views
3

我想創建一個名爲img的文件夾,該文件夾已存在於我的私人存儲區public中。我正在使用Boto3。我只是想將這個文件夾市民不要什麼都使用腳本..使用Boto3和Python如何使文件夾公開

這是我當前如何連接到桶中,並有多遠我有....

ACCESS_KEY_ID = 'xxxxx' 
ACCESS_KEY_SECRET = 'xxxx' 
bucket_name = 'mybucket' 
sourceDir = "../../docs/buildHTML/html/" 
destDir = '' 

r = boto3.setup_default_session(region_name='eu-west-1') 
s3 = boto3.resource('s3', aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET) 
bucket = s3.Bucket(bucket_name) 

所以我有桶和這個工程。我現在如何製作已存在的文件夾img

+0

順便說一句,試圖通過一個IAM角色或環境變量或〜/ .boto配置文件提供IAM憑證,而不是硬編碼他們在源代碼。 – jarmod

回答

5

你需要一個策略添加到桶中,這樣的事情:

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
     "Sid":"PublicReadImages", 
     "Effect":"Allow", 
     "Principal": "*", 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::mybucket/abc/img/*"] 
    } 
    ] 
} 

您可以通過AWS控制檯做到這一點,或任何的SDK。在boto3,我覺得你做這樣的:

bucket = s3.Bucket(bucket_name) 

response = bucket.put(
    Policy = '<policy string here>' 
) 
相關問題