[英]Can Amazon Glacier mirror an Amazon S3 bucket?
我想用Amazon Glacier镜像S3存储桶。
冰川常见问题解答指出:
Amazon S3现在提供了一个新的存储选项,使您能够利用Amazon Glacier的极低成本存储服务进行数据归档。 您可以定义S3生命周期规则,以将Amazon S3对象集自动归档到Amazon Glacier,以降低存储成本。 您可以通过访问Amazon S3开发人员指南中的对象生命周期管理主题来了解更多信息。
这很近,但是我想反映一下。 我不想删除S3上的内容,仅将其复制到Glacier。
是否可以通过AWS自动设置?
还是需要手动将此镜像上传到Glacier?
现在,可以通过首先在Amazon S3上创建跨区域复制存储桶来实现“从S3到Glacier”的镜像(此复制存储桶将成为您原始存储桶的镜像-请参阅http://docs.aws.amazon.com /AmazonS3/latest/dev/crr.html ),然后在复制存储桶中设置生命周期规则(将数据移至Glacier)。
亚马逊未通过其API提供此功能。 我们遇到了同样的问题,并通过运行每日cron作业(将文件重新上传到Glacier)解决了该问题。
这是您可以使用Python和boto运行的代码片段,用于将文件复制到Glacier保管库。 请注意,使用下面的代码,您必须从S3本地下载文件,然后才能运行它(例如,可以使用s3cmd)-以下代码对于将本地文件上传到Glacier非常有用。
import boto
# Set up your AWS key and secret, and vault name
aws_key = "AKIA1234"
aws_secret = "ABC123"
glacierVault = "someName"
# Assumption is that this file has been downloaded from S3
fileName = "localfile.tgz"
try:
# Connect to boto
l = boto.glacier.layer2.Layer2(aws_access_key_id=aws_key, aws_secret_access_key=aws_secret)
# Get your Glacier vault
v = l.get_vault(glacierVault)
# Upload file using concurrent upload (so large files are OK)
archiveID = v.concurrent_create_archive_from_file(fileName)
# Append this archiveID to a local file, that way you remember what file
# in Glacier corresponds to a local file. Glacier has no concept of files.
open("glacier.txt", "a").write(fileName + " " + archiveID + "\n")
except:
print "Could not upload gzipped file to Glacier"
这是通过生命周期策略完成的,但是该对象在S3中不再可用。 您可以将其复制到单独的存储桶中以保留它。
如果您首先在S3存储桶上启用版本控制,则可以将生命周期规则应用于以前的版本。 这将实现非常相似的结果,只是不会备份当前版本。
我遇到了同样的问题,但无法忍受从Glacier恢复的漫长等待时间(通常需要3-5个小时)。
以我为例,我创建了一种商品,该商品可以同步和创建存储桶的快照。
它还可以利用S3减少冗余存储来更好地估算Glacier节省成本的好处。
您可以在bucketbacker.com上免费试用功能全面的2周试用版
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.