单链接限速
本文介绍如何在上传、下载文件时,通过在请求中携带x-oss-traffic-limit参数并设置限速值,以保证其他应用的正常带宽。
说明 有关单链接限速的使用场景及注意事项的更多信息,请参考开发指南的单链接限速文档。
普通上传下载限速
以下代码用于普通上传、下载文件时设置单链接限速:
# -*- coding: utf-8 -*-
import oss2
from oss2.models import OSS_TRAFFIC_LIMIT
# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录https://ram.console.aliyun.com创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourRequestBucketName>')
object_name = '<yourobjectName>'
local_file_name = '<yourLocalFileName>'
down_file_name = '<yourDownloadFileName>'
# 限速100KB/s,即819200bit/s, 在headers中设置。
limit_speed = (100 * 1024 * 8)
headers = dict()
headers[OSS_TRAFFIC_LIMIT] = str(limit_speed);
# 限速上传文件。
result = bucket.put_object_from_file(object_name, local_file_name, headers=headers)
print('http response status:', result.status)
# 限速下载文件到本地。
result = bucket.get_object_to_file(object_name, down_file_name, headers=headers)
print('http response status:', result.status)
使用签名URL方式上传下载限速
以下代码用于使用签名URL方式上传、下载文件时设置单链接限速:
# -*- coding: utf-8 -*-
import oss2
from oss2.models import OSS_TRAFFIC_LIMIT
# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录https://ram.console.aliyun.com创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourRequestBucketName>')
object_name = '<yourobjectName>'
local_file_name = '<yourLocalFileName>'
down_file_name = '<yourDownloadFileName>'
# 限速100KB/s,即819200bit/s,在params中设置。
limit_speed = (100 * 1024 * 8)
params = dict()
params[OSS_TRAFFIC_LIMIT] = str(limit_speed);
# 创建限速上传文件的签名url, 有效期60s。
url = bucket.sign_url('PUT', object_name, 60, params=params)
print('put object url:', url)
# 限速上传。
result = bucket.put_object_with_url_from_file(url, local_file_name)
print('http response status:', result.status)
# 创建限速下载文件的签名url, 有效期60s。
url = bucket.sign_url('GET', object_name, 60, params=params)
print('get object url:', url)
# 限速下载。
result = bucket.get_object_with_url_to_file(url, down_file_name)
print('http response status:', result.status)
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论