首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用boto将文件上传到S3 bucket中的目录

如何使用boto将文件上传到S3 bucket中的目录
EN

Stack Overflow用户
提问于 2013-02-26 17:47:54
回答 13查看 276.3K关注 0票数 132

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

例如:我有bucket name = test。在存储桶中,我有两个名为"dump“和"input”的文件夹。现在我想使用python...将一个文件从本地目录复制到S3“转储”文件夹中。有谁可以帮我?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2013-02-26 19:04:57

试试这个。

代码语言:javascript
运行
复制
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语句的提醒。此外,我不建议将凭据放在您自己的源代码中。如果你在亚马逊网络服务中运行,使用IAM凭证和实例配置文件(http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html),并在你的开发/测试环境中保持相同的行为,使用类似于AdRoll的全息图(https://github.com/AdRoll/hologram)

票数 114
EN

Stack Overflow用户

发布于 2017-11-03 23:17:29

代码语言:javascript
运行
复制
import boto3

s3 = boto3.resource('s3')
BUCKET = "test"

s3.Bucket(BUCKET).upload_file("your/local/file", "dump/file")
票数 76
EN

Stack Overflow用户

发布于 2015-06-29 18:00:18

不需要把它弄得那么复杂:

代码语言:javascript
运行
复制
s3_connection = boto.connect_s3()
bucket = s3_connection.get_bucket('your bucket name')
key = boto.s3.key.Key(bucket, 'some_file.zip')
with open('some_file.zip') as f:
    key.send_file(f)
票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15085864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档