大文件分段上传 关闭文件流 f.close() 追加上传 操作场景 通过普通上传创建的对象,用户无法在原对象上进行追加写操作,如果对象内容发生了改变,只能重新上传同名对象来进行修改。这在日志、视频监控等数据复写较频繁的场景下使用不方便。所以可以通过追加上传的方式来只上传增加部分的内容,增强扩展性,提高文件的上传效率。 操作步骤 1. 创建py文件,并引入boto3包的session模块。 python from boto3.sessionimport Session 2. 配置用于访问对象存储服务的凭证Access Key、Secret Key和外网访问地址endpoint。 python accesskey "此处输入你的Access Key" 这里输入你的Access Key secretkey "此处输入你的Secret Key" 这里输入你的Secret Key url "此处输入你的endpoint" 这里输入你的endpoint 3. 获取对象存储服务的操作客户端。 python session Session(accesskey, secretkey) s3client session.client('s3', endpointurlurl) 4. 读取文件并记录文件md5值。 python with open('输入要上传文件的路径', 'rb') as file: data file.read() md5 hashlib.md5(data).digest() md5 base64.b64encode(md5) 5. 上传对象。 (1)首次上传 python s3client.putobject(Bucket'输入要传入的桶名', Metadatadict(m1'm1'), Bodydata, Key'输入存入后对象的键值', ContentMD5str(md5, 'utf8'), AppendTrue, 开启追加上传 AppendPosition0) 指定追加上传开始的位置 (2)追加上传 python