2017-09-18 32 views
0

我搜索了boto3 doc,但沒有找到相關信息。在這種link,應提到的是它可以使用如何使用boto3寫入S3標準不經常訪問?

k.storage_class='STANDARD_IA'

有人可以在這裏分享一個完整的代碼片段來完成?非常感謝。

+0

是否要設置存儲類的時候,對象是創建,還是創建後? –

+0

你能告訴我兩種方法嗎? – nos

回答

1

boto3 Storing Data例子,它看起來像把對象boto3的標準方法是

s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb')) 

但設置存儲類,S3.Object.Put表明,我們想使用參數:

StorageClass='STANDARD_IA' 

所以結合兩者,我們有:

import boto3 
s3 = boto3.resource('s3') 
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'), StorageClass='STANDARD_IA') 

希望幫助

2

新文件

import boto3 

client = boto3.client('s3') 

client.upload_file(
    Filename = '/tmp/foo.txt', 
    Bucket = 'my-bucket', 
    Key = 'foo.txt', 
    ExtraArgs = { 
     'StorageClass': 'STANDARD_IA' 
    } 
) 

現有文件

How to change storage class of existing key via boto3

import boto3 

s3 = boto3.client('s3') 

copy_source = { 
    'Bucket': 'mybucket', 
    'Key': 'mykey' 
} 

s3.copy(
    CopySource = copy_source, 
    Bucket = 'target-bucket', 
    Key = 'target-key', 
    ExtraArgs = { 
    'StorageClass': 'STANDARD_IA', 
    'MetadataDirective': 'COPY' 
    } 
)