如何使用boto上传文件到S3存储桶中的目录
如何使用boto上传文件到S3存储桶中的目录
我想使用Python在S3存储桶中复制文件。
例如:我有一个名为test的存储桶。在该存储桶中,我有两个名为“dump”和“input”的文件夹。现在我想使用Python将本地目录中的文件复制到S3“dump”文件夹中… 有人可以帮我吗?
admin 更改状态以发布 2023年5月21日
注意:此答案使用boto
。 参见使用boto3
的其他答案,该答案是更新版。
尝试这个...
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)
[更新]我不是一个python程序员,所以感谢您提供有关导入语句的提示。此外,我不建议将凭据放在您自己的源代码中。如果您在AWS内部运行此代码,请使用带有实例配置文件的IAM凭据(http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html),并在Dev/Test环境中使用像AdRoll的Hologram之类的工具来保持相同的行为(https://github.com/AdRoll/hologram)