追加上传

追加上传是指通过AppendObject方法在已上传的追加类型文件末尾直接追加内容。

注意:

追加上传不允许桶开启多版本;

参数position:

  • 如果是第一次追加上传,position应设为0
  • 如果不设置position,程序会根据上次上传自动获取被追加文件的上传位置,但会耗时在获取位置上;
  • 如果自己设置position,需要准确的输入位置的大小,否则会报错。

以下代码用于追加上传。

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'
            # <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
            ObjectName = '<your_object_name>'
            # <your_local_file_path>为绝对路径,需包含文件后缀名,若无此文件则创建新文件。如:“D:/recv/file.txt”
            LocalFilePath = '<your_local_file_path>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 使用密钥, 节点来初始化储存信息,这里以华北三为案例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 追加上传可以兼容内存中上传内容与文件中读取的内容。内容的上传格式应为字符串或者2进制格式
            # 这里使用先上传读取的文件内容再上传内存中的字符串为案例
            with open(UploadFilePath, 'r') as f:
                text = f.read()
                result = bucket.append_object(ObjectName, 0, text1)
                bucket.append_object(ObjectName, result.next_position, "欢迎使用浪潮云")