Multi upload 示例


    import math, os
    import boto
    import boto.s3.connection
    from filechunkio import FileChunkIO
    
    CONS_AK = 'RC35MU8KM1PMEQ4EFD46'
    CONS_SK = 'Fg1KO10FS4uIPzSoKenmKAR2YHt052rM9u8VDik9'
    
    # Connect to S3
    c = 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()
            )
    
    # b = c.get_bucket('mybucket')
    b = c.create_bucket('mybucket')
    
    # Local file path
    source_path = './local-50M-file'
    source_size = os.stat(source_path).st_size
    
    # Create a multipart upload request
    mul_key = 'my-multi-obj'
    header = {
        'x-amz-meta-joseph': 'Yang Honggang'
    }
    mp = b.initiate_multipart_upload(mul_key, headers=header)
    
    # Use a chunk size of 20 MiB (feel free to change this)
    chunk_size = 20971520
    chunk_count = int(math.ceil(source_size / float(chunk_size)))
    
    # Send the file parts, using FileChunkIO to create a file-like object
    # that points to a certain byte range within the original file. We
    # set bytes to never exceed the original file size.
    for i in range(chunk_count):
        offset = chunk_size * i
        bytes = min(chunk_size, source_size - offset)
        with FileChunkIO(source_path, 'r', offset=offset,
                bytes=bytes) as fp:
            mp.upload_part_from_file(fp, part_num=i + 1)
    
    # Finish the upload
    mp.complete_upload()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值