2015-06-06 13 views
1

我想收集AWS S3的存儲桶的總大小。當然,我可以使用AWS-CLI做到這一點:如何追加AWS python SDK中的--query參數?

aws s3api list-objects --bucket MYBUCKET --query "[Sum(Contents[].Size)]" 

但我的問題是:我怎麼能在Python SDK追加--query?我檢查過boto文檔,但沒有找到辦法做到這一點。

一些示例代碼:

s3_conn = S3Connection(aws_access_key_id="KEY",aws_secret_access_key'AC_KEY') 
buckets = s3_conn.get_all_buckets() 
# I can list all items 
items = buckets[0].list() 
# but how can I append --query "[Sum(Contents[].Size)]" to here? 
+1

沒有query參數的''--query''參數是特定於AWS CLI。它通過獲取botocore調用的原始輸出並使用[jmespath](http://jmespath.org)處理它來實現。您可以通過自己使用這兩個組件來獲得類似的結果。 – garnaat

+0

嗨@garnaat。當有很多對象時,使用'--query'來總結大小是非常快的(與在SDK中使用'bucket.list()'相比)。所以我認爲通過使用'--query',這是AWS服務器做的總和工作。如果這是真的,我們可以通過使用SDK來讓AWS服務器執行此操作嗎?真的謝謝你的回答:) –

+0

不,在客戶端處理''--query''選項。 S3服務中沒有服務器端支持。 – garnaat

回答