Boto2 s3访问示例

    import boto
    import boto.s3.connection
    ############### Replace these with your configrations ####################
    CONS_AK = 'RC35MU8KM1PMEQ4EFD46'
    CONS_SK = 'Fg1KO10FS4uIPzSoKenmKAR2YHt052rM9u8VDik9'
    
    s3_conn = boto.connect_s3(
            aws_access_key_id=CONS_AK,
            aws_secret_access_key=CONS_SK,
            host='yhg-2',
            port=80,
            is_secure=False,
            calling_format=boto.s3.connection.OrdinaryCallingFormat()
            )
    ##########################################################################
    # create bucket
    bucket_name = 'hehe'
    print 'Create bucket ', bucket_name
    mb = s3_conn.create_bucket(bucket_name)
    # list bucket
    print 'List all buckets:'
    buckets = s3_conn.get_all_buckets()
    for bucket in buckets:
        print bucket.name
    # put object from file
    print "Put object from local file"
    f_obj_name = './s3-demon.py'
    f_key = mb.new_key(f_obj_name)
    f_key.set_contents_from_filename(f_obj_name)
    # put object from string
    print "Put object from string"
    s_obj_name = 'string'
    s_key = mb.new_key(s_obj_name)
    # set user defined metadata key/value in request header
    my_header = {
         'x-amz-meta-joseph': 'Yang Honggang'
     }
    s_key.set_contents_from_string('hello, world!', headers = my_header)
    # list objects in bucket
    keys = mb.list()
    print "List all keys in bucket:"
    key_names = []
    for key in keys:
        key_names.append(key.name)
        print "name: ", key.name, "size: ", key.size
    # get object to file
    local_file = './local_file'
    s_key.get_contents_to_filename(local_file)
    # get object to string
    string = s_key.get_contents_as_string()
    print "key ", f_obj_name, ": ", string
    # set bucket-wide ACL
    mb.set_acl('public-read-write')
    # set object-specific ACL
    mb.set_acl('private', s_obj_name)
    # get object's metadata
    md = s_key.get_metadata('joseph')
    print "Get metadata: ", md
    # modify user defined metadata k/v
    print "Modify a existd obj's user defined metadata"
    ### local update
    s_key.metadata.update({'joseph': 'Hehe',
                           'javen' : 'WJ'
                          })
    ### boto gives back an object without ANY metadata
    s_key_new = s_key.copy(s_key.bucket.name, s_key.name, s_key.metadata, preserve_acl=True)
    # read the latest metadata
    string = s_key_new.get_contents_as_string()
    md = s_key_new.get_metadata('joseph')
    print "Get latest metadata: "
    print "\t<joseph,", md, ">"
    md = s_key_new.get_metadata('javen')
    print "\t<javen,", md, ">"
    # delete all keys
    ret = mb.delete_keys(key_names)
    print "Delete all keys in bucket: "
    print "\t success: ", ret.deleted
    print "\t failed: ", ret.errors
    
    # delete bucket
    print 'Delete bucket ', mb.name
    s3_conn.delete_bucket(mb)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python2-s3transfer是一个Python库,用于使用Amazon S3服务进行文件传输。它提供了简洁的API,使得向Amazon S3上传和下载文件变得更加容易和高效。 安装Python2-s3transfer包非常简单。可以通过pip工具进行安装,只需要执行以下命令: ``` pip install python2-s3transfer ``` 这将从Python Package Index(PyPI)上下载最新的Python2-s3transfer版本,并自动安装到您的Python环境中。 安装完成后,您可以在Python脚本中导入s3transfer模块,并开始使用它来上传和下载文件。下面是一个简单的示例: ```python import boto3 from botocore.exceptions import NoCredentialsError from botocore.config import Config # 配置AWS凭证和服务区域 AWS_ACCESS_KEY = 'your_access_key' AWS_SECRET_KEY = 'your_secret_key' AWS_REGION = 'your_region' # 创建S3客户端 s3 = boto3.client('s3', aws_access_key_id=AWS_ACCESS_KEY, aws_secret_access_key=AWS_SECRET_KEY, region_name=AWS_REGION, config=Config(signature_version='s3v4')) # 上传文件到S3 def upload_file(file_name, bucket, object_name=None): if object_name is None: object_name = file_name try: response = s3.upload_file(file_name, bucket, object_name) print('文件上传成功') except NoCredentialsError: print('无法找到有效的AWS凭证') # 下载S3中的文件 def download_file(bucket, object_name, file_name): try: s3.download_file(bucket, object_name, file_name) print('文件下载成功') except NoCredentialsError: print('无法找到有效的AWS凭证') # 使用示例 upload_file('local_file.txt', 'your_bucket', 's3_file.txt') download_file('your_bucket', 's3_file.txt', 'local_file.txt') ``` 这是一个基本的使用示例,可以根据自己的需求进行扩展和定制。通过Python2-s3transfer,您可以方便地与Amazon S3进行文件传输,从而更好地利用和管理云存储资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值