小编典典

如何使用Boto将文件上传到S3存储桶中的目录

python

我想使用python复制s3存储桶中的文件。

例如:我的存储桶名称=测试。在存储桶中,我有2个文件夹名称为“ dump”和“
input”。现在,我想使用python将文件从本地目录复制到S3“转储”文件夹…有人可以帮助我吗?


阅读 238

收藏
2020-12-20

共1个答案

小编典典

尝试这个…

import boto
import boto.s3
import sys
from boto.s3.key import Key

AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''

bucket_name = AWS_ACCESS_KEY_ID.lower() + '-dump'
conn = boto.connect_s3(AWS_ACCESS_KEY_ID,
        AWS_SECRET_ACCESS_KEY)


bucket = conn.create_bucket(bucket_name,
    location=boto.s3.connection.Location.DEFAULT)

testfile = "replace this with an actual filename"
print 'Uploading %s to Amazon S3 bucket %s' % \
   (testfile, bucket_name)

def percent_cb(complete, total):
    sys.stdout.write('.')
    sys.stdout.flush()


k = Key(bucket)
k.key = 'my test file'
k.set_contents_from_filename(testfile,
    cb=percent_cb, num_cb=10)

[更新]我不是pythonist,所以感谢您对import语句的注意。另外,我不建议将凭证放在您自己的源代码中。如果您在AWS内部运行此代码,请使用带有实例配置文件的IAM凭证(http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-
role-ec2_instance-
profiles.html),并在其中保留相同的行为您的开发/测试环境,请使用类似AdRoll的Hologram(https://github.com/AdRoll/hologram

2020-12-20