本文介绍如何在上传和下载文件(Object)时,通过在请求中携带x-oss-traffic-limit参数并设置限速值,以保证其他应用的正常带宽。
说明 有关单链接限速的使用场景及注意事项的更多信息,请参见开发指南的单链接限速文档。
普通上传和下载限速
以下代码用于通过PutObject方式普通上传和通过GetObject方式下载文件时设置单链接限速:
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";
$object= "<yourObjectName>";
$content = "hello world";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// 限速100 KB/s,即819200 bit/s。
$options = array(
OssClient::OSS_HEADERS => array(
OssClient::OSS_TRAFFIC_LIMIT => 819200,
));
try {
// 限速上传。
$ossClient->putObject($bucket, $object, $content, $options);
// 限速下载。
$ossClient->getObject($bucket, $object, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
签名URL方式上传和下载限速
以下代码用于使用签名URL方式上传和下载文件时设置单链接限速:
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";
$object= "<yourObjectName>";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// 限速100 KB/s,即819200 bit/s。
$options = array(
OssClient::OSS_TRAFFIC_LIMIT => 819200,
);
// 创建限速上传的URL,有效期为60s。
$timeout = 60;
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "PUT", $options);
print($signedUrl);
// 创建限速下载的URL,有效期为120s。
$timeout = 120;
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET", $options);
print($signedUrl);