如何更新S3存储桶中所有项目的存储类?

时间:2016-02-12 23:32:11

标签: amazon-web-services amazon-s3

我发现自己希望能够轻松地将存储桶中的所有项目更改为S3上的特定存储类。通常这是因为项目是在标准版上传的,我希望它们在Reduced Redundancy中节省一些钱。

我没有看到通过AWS控制台执行此操作的方法。

更新存储桶中所有文件的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

使用awscli pip包

https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

实施例

library IEEE;
use IEEE.std_logic_1164.all;

entity test is
end entity;

architecture beh of test is

signal comparison_output : std_logic;
signal input_stim : std_logic_vector(7 downto 0) := x"33";
signal clock : std_logic := '0';
signal reset : std_logic := '1';
begin

vt: entity work.vector_test
port map (  CLOCK => clock,
            RESET => reset,
            input => input_stim,
            output => comparison_output );


clocking: process(clock)
begin
    clock <= not clock after 16.7 ns;
end process;

stimuli: process
begin
    reset <= '0' after 20 ns;
    input_stim <= x"36" after 100 ns;
    input_stim <= x"80" after 100 ns;
 wait;
end process;

end architecture;

答案 1 :(得分:1)

无法通过AWS控制台执行此操作。您需要迭代它们并更新每个对象的元数据。

这是一个执行此操作的ruby脚本:

https://gist.github.com/mcfadden/b1e564f3323f98720ff2

其他一些想法:

在创建对象时设置正确的存储类。您不希望再次遍历所有项目。

某些存储类不适用于所有对象。例如,您不能将对象设置为Standard - Infrequent Access类,直到它们在存储桶中存放30天。

如果您尝试使用Standard - Infrequent Access存储类,则可以设置生命周期规则,以便在30天后自动将对象移动到此存储类。

答案 2 :(得分:1)

在谈论整个存储桶时,我认为做到这一点的最佳方法是创建生命周期规则。可以通过控制台完成:

  1. 打开AWS控制台,转到相关的存储桶,然后单击“管理”。
  2. 单击“生命周期”,然后单击“添加生命周期规则”。
  3. 命名,然后单击下一步。
  4. 选择是希望它在当前版本上运行还是在以前版本上运行(如果为此存储桶配置了版本控制),然后选择“ Single Zone IA”。

  5. 再单击三下,就完成了。

或者您可以像这样通过AWS-CLI做到这一点:

创建一个名为lifecycle.json的json文件,如下所示:

{
          "Rules": [
              {
                  "ID": "Move all objects to one zone infrequent access",
                  "Prefix": "",
                  "Status": "Enabled",
                  "Transitions": [
                      {
                          "Days": 30,
                          "StorageClass": "ONEZONE_IA"
                      }
                  ]
              }
        ]
}

然后运行:

aws s3api put-bucket-lifecycle-configuration --bucket <Bucket name> --lifecycle-configuration file://./lifcycle.json

在过渡中,我原样放置了30天,目前是将对象过渡到一个IA区域所需的最短时间。