boto3将字符串上传到冰川文件

时间:2016-03-25 13:47:26

标签: amazon-web-services boto3 amazon-glacier

我的工作流程有一个从S3下载的tar文件,扩展后我可选择将其上传到冰川保险库中。鉴于S3存储桶中还有其他文件,我不想使用生命周期管理。我所有这些都在boto下工作,现在我正在慢慢升级到boto3

我最近发现,不是下载到磁盘文件中,而是可以下载到字符串对象中并对其进行操作,这使得解压缩得更快,因为我不需要触摸磁盘。

http://example.com/path/to/your/page#someanchor

如果我想通过boto3上传到冰川,这就是我所拥有的:

s3 = boto3.client('s3')
response = s3.get_object(Bucket=bucket,Key=path)
my_file = tarfile.open(fileobj=(StringIO(response['Body'].read())))
my_file.extractall(path="EXTRACTPATH")

这让我知道:

glacier = boto3.client('glacier', region_name='MYREGION')
archive = glacier.upload_archive(vaultName='MYVAULT', archiveDescription=filename, body=response['Body'].read())

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

read是一个不可搜索的流,它直接从套接字读取,因此您只能获得一个dfRates = sc.newAPIHadoopRDD( 'com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat', 'org.apache.hadoop.io.LongWritable', 'com.google.gson.JsonObject', conf=conf) 。如果要在多个位置使用它们,则需要保存字节。