我发现自己希望能够轻松地将存储桶中的所有项目更改为S3上的特定存储类。通常这是因为项目是在标准版上传的,我希望它们在Reduced Redundancy中节省一些钱。
我没有看到通过AWS控制台执行此操作的方法。
更新存储桶中所有文件的最佳方法是什么?
答案 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)
在谈论整个存储桶时,我认为做到这一点的最佳方法是创建生命周期规则。可以通过控制台完成:
选择是希望它在当前版本上运行还是在以前版本上运行(如果为此存储桶配置了版本控制),然后选择“ Single Zone IA”。
再单击三下,就完成了。
或者您可以像这样通过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区域所需的最短时间。