当前位置: 首页 > 面试题库 >

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

颜骁
2023-03-14
问题内容

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

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


问题答案:

尝试这个…

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)



 类似资料:
  • 我想用Python在s3 bucket中复制一个文件。

  • 如果有人帮我解决这个问题,我会非常感激。 我正在为我的项目使用codeigniter框架。并想将我的图像上传到amazon s3桶中。当我尝试使用S3.php文件时 string(92)“不支持您提供的授权机制。请使用AWS4-HMAC-SHA256。” 有人能帮我解决这个问题吗。

  • 我想使用S3托管通过Kotlin Spring Boot应用程序上载的文件。我按照说明使用了各种其他文档,并尝试了一些解决stackoverflow上类似问题的方法。我总是收到403错误。如何设置S3和IAM以便上载文件?我如何找出问题所在?任何帮助都将不胜感激。 我已经激活了访问日志记录,这需要很长时间,而且还没有对我有太大帮助,特别是因为生成日志需要45分钟。忽略状态为200的响应,日志中会出

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 我正在使用带有S3桶策略的Angular前端将文件上传到S3,如下所示: 但如果我将上述政策更改为 在那里我添加了: 添加桶列表拒绝,上传失败。无论如何,我可以在没有列出桶的情况下上传文件。