如何使用oss加速器?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
1、加速整个Bucket
通过Java SDK在ossClient初始化时,全局使用OSS加速域名实现加速整个Bucket的数据传输。
// 填写OSS加速器域名。
String acclerator_oss_endpoint = "http://cn-beijing-internal.oss-data-acc.aliyuncs.com";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(normal_oss_endpoint, accessKeyId, accessKeySecret);
OSSObject ob = ossClient.getObject(bucketName,objectname);
OSSObject ob = ossClient.putObject(bucketName,objectname,inputStream);
2、加速Bucket指定路径
可以通过以下两种形式的Endpoint实现以上数据读写分流场景。
oss-cn-beijing.aliyuncs.com:通过OSS域名上传数据以及下载normal_data/*下的常规数据。
oss-cache-cn-beijing-h.aliyuncs.com:通过OSS加速域名加速下载hot_data/*下的热数据。
示例代码如下:
public class Demo {
    // 请确保已设置环境变量AccessKeyId和AccessKeySecret。
    private static String acceskeyId = System.getenv("AccessKeyId");
    private static String accessKeySecret = System.getenv("AccessKeySecret");
    // 使用OSS Endpoint上传数据至OSS Bucket。
    private static String normal_oss_endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // 使用OSS加速器Endpoint下载数据。
    private static String acclerator_oss_endpoint = "https://cn-hangzhou-internal.oss-data-acc.aliyuncs.com";
    // 填写Bucket名称,例如examplebucket。
    private static String bucketName = "examplebucket";
    // 填写用于存储热数据的Object名称。
    private static String object_hot = "hot_data/filetest";
    // 填写用于存储常规数据的Object名称。
    private static String object_normal = "normal_data/filetest";
    // 填写上传的文件内容。
    private static String content = "helloworld";
    public static void main(String[] args) throws IOException {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(normal_oss_endpoint, accessKeyId, accessKeySecret);
        // 将object_hot的数据上传到标准OSS。
        uploadFile(object_hot, ossClient);
        // 将object_normal的数据上传到标准OSS。
        uploadFile(object_normal, ossClient);
        // 通过OSS加速器下载hot_data/filetest。
        downloadFile(object_hot, ossClient);
        // 通过OSS下载normal_data/filetest。
        downloadFile(object_normal, ossClient);
        // 关闭OSSClient。
        ossClient.shutdown();
    }
    public static void printObjectContent(OSSObject ob) throws IOException {
        //// 读取文件内容。
        BufferedReader reader = new BufferedReader(new InputStreamReader(ob.getObjectContent()));
        while (true) {
            String line = reader.readLine();
            if (line == null) { break; }
            System.out.println("content:" + line);
        }
    }
    /*
    *全部上传到OSS。
     */
    public static void uploadFile(String objectName, OSS ossClient) {
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(content.getBytes());
        InputStream contentInputStream = (InputStream) byteArrayInputStream;
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, contentInputStream);
        // 如果不显式设置Endpoint,将使用ossclient初始化时设置的值。
        PutObjectResult result = ossClient.putObject(putObjectRequest);
        System.out.println("Put objectName:" + objectName + " to " + normal_oss_endpoint + " resultID:" + result.getRequestId());
        putObjectRequest.setEndPoint(normal_oss_endpoint);
    }
    /*
     *根据objectName的前缀判断需要使用的Endpoint。
     */
    public static Object downloadFile(String objectName, OSS ossClient) throws IOException {
        String endpoint = "";
        if (objectName.startsWith("normal_data")) {
            endpoint = normal_oss_endpoint;
        } else if (objectName.startsWith("hot_data")) {
            endpoint = acclerator_oss_endpoint;
        }
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectName);
        // 如果不显式设置Endpoint,将使用ossclient初始化时设置的值。
        getObjectRequest.setEndPoint(endpoint);
        OSSObject ob = ossClient.getObject(getObjectRequest);
        System.out.println("Get Object" + objectName + " from " + endpoint + " resultID" + ob.getRequestId());
        printObjectContent(ob);
        return ob;
    }
}
——参考链接。
要使用OSS加速器,遵循以下步骤:
1.创建OSS加速器: 
2.设置加速策略:
3.访问加速器:
http://oss-cache-cn-region.aliyuncs.com。 通过以上步骤,您可以有效提升OSS中文件的访问速度,特别是对于频繁访问的热点文件。记得根据实际需求调整加速器配置和策略。