详情页标题前

阿里云对象存储OSSPython上传回调-云淘科技

详情页1

OSS在完成简单上传(put_object和put_object_from_file)以及分片上传(complete_multipart_upload)时可以提供回调(Callback)给应用服务器。您只需要在发送给OSS的请求中携带相应的Callback参数,即可实现回调。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Python初始化。

示例代码

在上传字符串时使用上传回调(callback),目标存储空间为examplebucket,上传的目标文件为examplefiles文件夹下的exampleobject.txt文件,具体代码如下。

# -*- coding: utf-8 -*-
import json
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 定义回调参数Base64编码函数。
def encode_callback(callback_params):
    cb_str = json.dumps(callback_params).strip()
    return oss2.compat.to_string(base64.b64encode(oss2.compat.to_bytes(cb_str)))

# 设置上传回调参数。
callback_params = {}
# 设置回调请求的服务器地址,例如http://oss-demo.aliyuncs.com:23450。
callback_params['callbackUrl'] = 'http://oss-demo.aliyuncs.com:23450'
#(可选)设置回调请求消息头中Host的值,即您的服务器配置Host的值。
#callback_params['callbackHost'] = 'yourCallbackHost'
# 设置发起回调时请求body的值。
callback_params['callbackBody'] = 'bucket=${bucket}&object=${object}'
# 设置发起回调请求的Content-Type。
callback_params['callbackBodyType'] = 'application/x-www-form-urlencoded'
encoded_callback = encode_callback(callback_params)
# 设置发起回调请求的自定义参数,由Key和Value组成,Key必须以x:开始。
callback_var_params = {'x:my_var1': 'my_val1', 'x:my_var2': 'my_val2'}
encoded_callback_var = encode_callback(callback_var_params)

# 上传回调。
params = {'x-oss-callback': encoded_callback, 'x-oss-callback-var': encoded_callback_var}
# 填写Object完整路径和字符串。Object完整路径中不能包含Bucket名称。
result = bucket.put_object('examplefiles/exampleobject.txt', 'a'*1024*1024, params)

相关文档

  • 关于上传回调的完整示例代码,请参见GitHub示例。

  • 关于上传回调的API接口说明,请参见Callback。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158185.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云对象存储OSS.NET进度条-云淘科技

    进度条用于指示上传或下载的进度。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClie…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSSJava列举存储空间-云淘科技

    存储空间(Bucket)是用来存储对象(Object)的容器。对象都隶属于存储空间。存储空间按照字母顺序排列。您可以列举当前账号所有地域下符合指定条件的存储空间。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSPython断点续传下载-云淘科技

    当下载大文件时,如果网络不稳定或者程序异常退出,会导致下载失败,甚至重试多次仍无法完成下载。为此,OSS提供了断点续传下载功能。断点续传下载将需要下载的文件分成若干个分片分别下载,所有分片都下载完成后,将所有分片合并成完整的文件。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网End…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLS进度条-云淘科技

    本文介绍进度条图表操作步骤及案例。 简介 进度条图表用于显示百分比内容,您可以通过进度条的属性配置调整进度条的样式,并设置进度条的显示规则。 基本构成如下: 实际值 单位(可选) 总值 使用步骤 登录日志服务控制台。 在Project列表区域,单击目标Project。 在日志存储 > 日志库页签中,单击目标Logstore。 输入查询和分析语句,然后单…

    2023年12月10日
  • 阿里云对象存储OSSHBase以EMR集群的方式使用OSS-HDFS服务作为底层存储-云淘科技

    HBase是Hadoop生态中的实时数据库,有较高的写入性能。 OSS-HDFS服务(JindoFS服务)是阿里云新推出的存储空间类型,并兼容HDFS接口。阿里云开源大数据开发平台E-MapReduce(简称EMR)支持HBase使用OSS-HDFS服务作为底层存储,同时支持存储WAL文件,实现存储与计算分离。 前提条件 已创建EMR-3.42.0及以上版本…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。