2016-04-04 64 views
0

我想知道是否有一個存儲桶(非每個對象)的方式來執行此操作。如何更改S3存儲桶中的所有對象以減少冗餘

謝謝!

+0

一種做法是什麼?使用什麼工具(是否重要)?我不確定這是適合這個網站。這可能更適合https://superuser.com/。 –

+0

謝謝,我也會檢查超級用戶,關於工具,s3cmd/python /任何東西都適合我。 – Drcoop

回答

0

在JavaScript的瀏覽器我使用這個;

var s3 = new AWS.S3({params: {Bucket: 'bucket'}}); 
    s3.listObjects({Prefix: ""}, function (err, data) { 
     if (data.Contents.length) { 
      async.each(data.Contents, function (file, cb) { 
       var params = { 
         CopySource: 'bucket' + '/' + file.Key, 
         Key: file.Key, 
         StorageClass: 'REDUCED_REDUNDANCY' 
        }; 
       s3.copyObject(params, function (copyErr, copyData) { 
        if (copyErr) { 
         console.log(err); 
        } else { 
      console.log('Changed to REDUCED_REDUNDANCY: ',params.CopySource); 
        } 
       }); 
       }); 
      } 
    }); 

這裏的getList中的對象在一個桶中,複製和粘貼每個對象在同一個地方asyncronuously與一點點改變;標準REDUCED_REDUNDANCY。如果沒有改變,你不能在同一個地方複製/粘貼,並且在控制檯中出現錯誤。