详情页标题前

阿里云对象存储OSS传输加速-云淘科技

详情页1

OSS传输加速利用全球分布的云机房,将全球各地用户对您存储空间(Bucket)的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议,为云存储互联网的上传、下载提供端到端的加速方案。

使用场景

  • 远距离数据传输加速

    例如全球性的论坛、Top在线协同办公平台等,部分客户会因传输距离较远导致上传和下载体验非常差。传输加速功能可以让全球各地的客户使用优化后的网络来传输数据,极大地提升上传和下载速度,让不同地域的用户都能有很好的访问体验。

  • GB、TB级大文件上传和下载

    通过互联网远距离上传和下载大文件时,经常会因为网络延迟过大而导致传输失败。传输加速功能使用优化的互联网传输链路、调优的协议栈与传输算法,可大幅减少远距离互联网传输超时的比例。您还可以结合使用传输加速功能与分片上传、断点续传下载,形成远距离大文件上传和下载的解决方案。

  • 非静态、非热点数据下载加速

    例如相册应用、游戏、电商、社交应用的评论内容、企业门户网站、金融类APP等,用户的下载体验直接影响产品竞争力和客户留存率。传输加速功能作为专为OSS上传、下载加速而设计的功能,可以最大限度利用客户端的网络能力,提升用户的下载体验。

注意事项

  • 华东1(杭州)、华东2(上海)、华东5(南京-本地地域)、华东6(福州-本地地域)、华北1(青岛)、华北2(北京)、华北 3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、中国香港、美国(硅谷)、美国(弗吉尼亚)、日本(东京)、韩国(首尔)、新加坡、澳大利亚(悉尼)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、印度(孟买)、德国(法兰克福)、英国(伦敦)、阿联酋(迪拜)地域支持开启传输加速。

  • 传输加速开启及关闭操作会在30分钟内全网生效。

  • 开启传输加速后必须使用OSS的传输加速域名才会提升访问速度。

  • 如果您工具中配置的Endpoint为传输加速Endpoint,则您只能操作已开启传输加速功能的Bucket。

  • 开启传输加速功能后,OSS提供的默认Endpoint仍可正常使用。在不需要传输加速的场景中,您可以使用默认Endpoint以减少传输加速的费用。关于默认Endpoint,请参见访问域名和数据中心。

  • 传输加速Endpoint仅支持HTTP/HTTPS协议的API接入,不支持RTMP协议等非HTTP/HTTPS协议的API接入。

  • 为保证数据传输安全,传输加速后端加速逻辑会视情况选择使用HTTPS协议进行数据传输。所以,客户端使用HTTP协议通过传输加速域名访问OSS时,在OSS的访问日志中查看到访问协议可能是HTTPS。

  • 如果您开启了传输加速功能,且使用传输加速域名访问您的Bucket时,OSS会收取传输加速费用。关于费用说明,请参见传输加速费用。

  • 如果您的存储空间已绑定自定义域名,且希望通过自定义域名访问OSS时实现传输加速,您可以通过CNAME配置,将您的域名指向加速域名。具体操作,请参见绑定传输加速域名。

  • 如果您希望通过自定义域名访问OSS时实现传输加速,您的自定义域名需要备案,否则将无法访问。具体操作,请参见ICP备案流程概述。

开启传输加速

开启传输加速后,Bucket会在保留默认Endpoint的基础上,新增以下两种传输加速Endpoint。

  • 全球加速Endpoint:地址为oss-accelerate.aliyuncs.com。传输加速接入点分布在全球各地,全球各地的Bucket均可以使用该域名进行传输加速。

  • 非中国内地加速Endpoint:地址为oss-accelerate-overseas.aliyuncs.com。传输加速接入点分布在除中国内地以外的各地域,仅在中国香港及海外各地域Bucket绑定未备案的域名做CNAME指向时使用。

您可以通过以下多种方式开启传输加速。

使用OSS控制台

  1. 登录OSS管理控制台。

  2. 单击Bucket 列表,然后单击目标Bucket名称。

  3. 在左侧导航栏,选择Bucket 配置>传输加速

  4. 传输加速页面,打开开启传输加速开关,然后在弹出的对话框单击确定

使用阿里云SDK

以下仅列举常见SDK开启传输加速的代码示例。关于其他SDK的开启传输加速的代码示例,请参见SDK简介。

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "examplebucket";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        try {
            // 设置Bucket的传输加速状态。
            // 当设置enabled为true时,表示开启传输加速;当设置enabled为false时,表示关闭传输加速。
            boolean enabled = true;
            ossClient.setBucketTransferAcceleration(bucketName, enabled);

        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

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')

# 设置Bucket的传输加速状态。
# 当设置enabled为true时,表示开启传输加速;当设置enabled为false时,表示关闭传输加速。
enabled = 'true'
bucket.put_bucket_transfer_acceleration(enabled)

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 填写Bucket名称。
	bucketName := "examplebucket"

	// 开启Bucket的传输加速状态。
	// Enabled表示传输加速的开关,取值为true表示开启传输加速,取值为false表示关闭传输加速。
	accConfig := oss.TransferAccConfiguration{}
	accConfig.Enabled = true

	err = client.SetBucketTransferAcc(bucketName, accConfig)
	if err != nil {
		HandleError(err)
	}
	fmt.Printf("set bucket transfer accelerate success
")
}

使用REST API

如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。更多信息,请参见PutBucketTransferAcceleration。

使用传输加速

使用浏览器

通过浏览器访问OSS时,将文件URL的Endpoint字段替换为传输加速Endpoint,例如https://test.oss-cn-shenzhen.aliyuncs.com/myphoto.jpg需改为https://test.oss-accelerate.aliyuncs.com/myphoto.jpg。如果文件访问权限为私有,则还需要加上签名信息。

使用命令行工具ossutil

  • 替换配置文件的Endpoint为传输加速Endpoint

    通过ossutil访问时,您可以将配置文件内的Endpoint替换为传输加速Endpoint。具体操作,请参见ossutil。

  • 在命令示例中增加-e oss-accelerate.aliyuncs.com

    在使用ossutil相关命令时,在命令示例中增加-e oss-accelerate.aliyuncs.com。下图表示在cp命令上传场景中使用了传输加速Endpoint。

    阿里云对象存储OSS传输加速-云淘科技

使用图形化管理工具ossbrowser

重要

通过ossbrowser访问OSS时,除了要填写AccessKey(AK)信息以外,还必须指定预设OSS路径。

各配置项说明如下:

参数

说明

Endpoint

选择自定义,并填写传输加速Endpoint https://oss-accelerate.aliyuncs.com

AccessKeyIdAccessKeySecret

填写账号的AccessKey(AK)信息。获取AccessKey的方式,请参见创建AccessKey。

重要

为保证数据安全,推荐您使用RAM用户的AccessKey登录ossbrowser。使用RAM用户登录之前,需要为RAM用户授予AliyunOSSFullAccessAliyunRAMFullAccess以及AliyunSTSAssumeRoleAccess的权限。具体操作,请参见权限管理。

预设OSS路径

指定访问某个Bucket或Bucket某个路径下资源的访问权限。预设OSS路径格式为oss://bucketname/path。例如授权访问存储空间examplebucket下文件夹examplefolder下的文件或子文件夹,则填写oss://examplebucket/examplefolder/

配置示例如下:

阿里云对象存储OSS传输加速-云淘科技

使用阿里云SDK

通过各语言SDK访问OSS时,将Endpoint设置为传输加速Endpoint。此处以Java SDK的简单上传和简单下载为例介绍。

  • 简单上传

    import com.aliyun.oss.ClientException;
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.common.auth.*;
    import com.aliyun.oss.OSSClientBuilder;
    import com.aliyun.oss.OSSException;
    import com.aliyun.oss.model.PutObjectRequest;
    import java.io.File;
    
    public class Demo {
    
        public static void main(String[] args) throws Exception {
            // 填写传输加速Endpoint。以全球加速Endpoint为例。
            String endpoint = "https://oss-accelerate.aliyuncs.com";
            // 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。
            EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
            // 填写Bucket名称,例如examplebucket。
            String bucketName = "examplebucket";
            // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
            String objectName = "exampledir/exampleobject.txt";
            // 填写本地文件的完整路径,例如D:\localpath\examplefile.txt。
            // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
            String filePath= "D:\localpath\examplefile.txt";
    
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
    
            try {
                // 创建PutObjectRequest对象。            
                PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, filePath);
                // 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。
                // ObjectMetadata metadata = new ObjectMetadata();
                // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
                // metadata.setObjectAcl(CannedAccessControlList.Private);
                // putObjectRequest.setMetadata(metadata);
    
                // 上传文件。
                ossClient.putObject(putObjectRequest);
            } catch (OSSException oe) {
                System.out.println("Caught an OSSException, which means your request made it to OSS, "
                        + "but was rejected with an error response for some reason.");
                System.out.println("Error Message:" + oe.getErrorMessage());
                System.out.println("Error Code:" + oe.getErrorCode());
                System.out.println("Request ID:" + oe.getRequestId());
                System.out.println("Host ID:" + oe.getHostId());
            } catch (ClientException ce) {
                System.out.println("Caught an ClientException, which means the client encountered "
                        + "a serious internal problem while trying to communicate with OSS, "
                        + "such as not being able to access the network.");
                System.out.println("Error Message:" + ce.getMessage());
            } finally {
                if (ossClient != null) {
                    ossClient.shutdown();
                }
            }
        }
    }            
  • 简单下载

    import com.aliyun.oss.ClientException;
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.common.auth.*;
    import com.aliyun.oss.OSSClientBuilder;
    import com.aliyun.oss.OSSException;
    import com.aliyun.oss.model.GetObjectRequest;
    import java.io.File;
    
    public class Demo {
    
        public static void main(String[] args) throws Exception {
            // 填写传输加速Endpoint。以全球加速Endpoint为例。
            String endpoint = "https://oss-accelerate.aliyuncs.com";
            // 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。
            EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
            // 填写Bucket名称,例如examplebucket。
            String bucketName = "examplebucket";
            // 填写不包含Bucket名称在内的Object完整路径,例如testfolder/exampleobject.txt。
            String objectName = "testfolder/exampleobject.txt";
            String filePath = "D:\localpath\examplefile.txt";
    
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
    
            try {
                // 下载Object到本地文件,并保存到指定的本地路径中。如果指定的本地文件存在会覆盖,不存在则新建。
                // 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。
                ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(filePath));
            } catch (OSSException oe) {
                System.out.println("Caught an OSSException, which means your request made it to OSS, "
                        + "but was rejected with an error response for some reason.");
                System.out.println("Error Message:" + oe.getErrorMessage());
                System.out.println("Error Code:" + oe.getErrorCode());
                System.out.println("Request ID:" + oe.getRequestId());
                System.out.println("Host ID:" + oe.getHostId());
            } catch (ClientException ce) {
                System.out.println("Caught an ClientException, which means the client encountered "
                        + "a serious internal problem while trying to communicate with OSS, "
                        + "such as not being able to access the network.");
                System.out.println("Error Message:" + ce.getMessage());
            } finally {
                if (ossClient != null) {
                    ossClient.shutdown();
                }
            }
        }
    }

测试传输加速效果

使用命令行工具ossutil

通过在ossutil命令示例中测试未开启传输加速前(即使用-e oss-us-west-1.aliyuncs.com)以及开启传输加速后(即使用-e oss-accelerate.aliyuncs.com)上传文件所需时间的差异。

阿里云对象存储OSS传输加速-云淘科技

使用在线工具

您可以通过OSS互联网连通与测速工具测试您本地访问全球各地数据中心时,开启传输加速与未开启传输加速的访问速度。

常见问题

除传输加速外,OSS是否提供其他加速方案?

除传输加速外,您还可以选择CDN加速实现加速访问OSS资源。更多信息,请参见CDN访问加速。

是否支持同时配置多种加速方案?

支持。例如您已开启CDN加速,并希望同时使用传输加速。您只需要开启传输加速,并将CDN回源到传输加速域名即可。更多信息,请参见绑定CDN加速域名。

如何通过自定义域名使用传输加速服务?

您可以在绑定自定义域名后,将CNAME指向传输加速域名。具体操作,请参见绑定传输加速域名。

为什么使用传输加速Endpoint无法列举Bucket?

传输加速服务仅针对携带Bucket名称信息的三级域名(格式为https://BucketName.oss-accelerate.aliyuncs.com)提供解析服务。而列举Bucket的请求域名中不携带Bucket名称信息,因此您无法使用传输加速Endpoint列举Bucket。建议您通过默认Endpoint列举目标地域的Bucket,例如https://oss-cn-hangzhou.aliyuncs.com

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

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

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

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

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

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

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

相关推荐

  • 阿里云对象存储OSS实时计算Flink读写OSS或者OSS-HDFS-云淘科技

    阿里云实时计算Flink支持通过连接器读写OSS以及OSS-HDFS数据。通过配置OSS或者OSS-HDFS连接器的输入属性,实时计算Flink会自动从指定的路径读取数据,并将其作为实时计算Flink的输入流,然后将计算结果按照指定格式写入到OSS或者OSS-HDFS的指定路径。 前提条件 已开通Flink全托管。具体操作,请参见开通Flink全托管。 开通…

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

    本文以Java语言为例,讲解在服务端通过Java代码完成签名,并且设置上传回调,然后通过表单直传数据到OSS。 前提条件 应用服务器对应的域名可通过公网访问。 确保应用服务器已安装Java 1.6以上版本(执行命令java -version进行查看)。 确保PC端浏览器支持JavaScript。 步骤1:配置应用服务器 下载应用服务器源码(Java版本)。 …

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSS数据处理概述-云淘科技

    您可以通过简单的REST API口在任何时间、任何地点、任何互联网设备上对存储在OSS中的数据进行分析处理。 数据处理包含以下内容: 说明 全新发布20余项数据数据处理能力,涵盖文档、音视频、图片智能、批量处理和自动触发,详情请参见 智能媒体管理快速入门。 功能模块 说明 相关文档 图片处理 图片处理包括图片缩放、自定义裁剪、图片样式等。 图片处理简介 智能…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLS从OSS获取数据出错-云淘科技

    如果加工规则中涉及OSS资源的加载,则有可能会产生资源的加载或刷新错误。本文档主要介绍从OSS获取数据出错的原因以及排查处理方法。 在成功读取源Logstore数据后,加工引擎开始对源Logstore的日志事件进行加工。如果加工规则中涉及OSS、RDS、Logstore等外联资源的加载,则也有可能会产生资源的加载或刷新错误。 错误影响 请参见错误影响。 错误…

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

    进度条用于指示上传或下载的进度。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见Python配置访问凭证。 本文以OSS域…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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