All Products
Search
Document Center

Object Storage Service:Konfigurasikan nama domain akselerasi CDN di SDK OSS

Last Updated:Jun 17, 2026

Saat menggunakan Object Storage Service (OSS) bersama Alibaba Cloud CDN, Anda akan dikenai biaya lalu lintas outbound dan lalu lintas origin. Untuk mengimbangi biaya tersebut dengan paket lalu lintas back-to-origin di SDK OSS, gantilah nama domain bucket dengan nama domain kustom Anda yang telah dikonfigurasi untuk akselerasi CDN, dan tentukan CNAME saat inisialisasi SDK.

Contoh berikut menunjukkan cara mengonfigurasi akselerasi CDN menggunakan berbagai bahasa SDK.

Penting

Pastikan variabel lingkungan `OSS_ACCESS_KEY_ID` dan `OSS_ACCESS_KEY_SECRET` telah disetel, serta gunakan nama domain kustom Anda yang dikonfigurasi untuk akselerasi CDN, misalnya `example.com`.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
public class Demo {
    public static void main(String[] args) throws Exception {
        // Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com.
        String endpoint = "http://example.com";
        // Tentukan wilayah yang sesuai dengan Endpoint, seperti cn-hangzhou.
        String region = "cn-hangzhou";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
              
        // Buat instans OSSClient.
        // Saat instans OSSClient tidak lagi diperlukan, panggil metode shutdown untuk melepas sumber daya.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // Secara eksplisit nyatakan penggunaan algoritma signature V4.
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        // Aktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan.
        clientBuilderConfiguration.setSupportCname(true);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();
        try {
            // Buat instans ClientConfiguration. Anda dapat memodifikasi parameter default sesuai kebutuhan.
            ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
            // Aktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan.
            conf.setSupportCname(true);
        } catch (OSSException oe) {
            System.out.println("Terjadi OSSException, yang berarti permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan tanggapan error karena suatu alasan.");
            System.out.println("Pesan Error:" + oe.getErrorMessage());
            System.out.println("Kode Error:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Terjadi ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Pesan Error:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
<?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;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com.
$endpoint = "https://example.com";

try {
    // Aktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan.
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, true);
} catch (OssException $e) {
    print $e->getMessage();
}                    
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com.
cname = 'http://example.com'

# Setel is_cname ke True untuk mengaktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan.
bucket = oss2.Bucket(auth, cname, 'examplebucket', is_cname=True)                   
using Aliyun.OSS;
using Aliyun.OSS.Common;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com.
const string endpoint = "https://example.com";

// Buat instans ClientConfiguration. Modifikasi parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Aktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan.
conf.IsCname = true;

// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);                    
package main

import (
    "fmt"
    "os"
    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
    // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Buat instans OSSClient.
    // Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com.
    client, err := oss.New("https://example.com", "", "", oss.UseCname(true), oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}
#include "oss_api.h"
#include "aos_http_io.h"
/* Tentukan nama domain kustom yang dikonfigurasi untuk akselerasi CDN, seperti example.com. */
const char *endpoint = "https://example.com";

void init_options(oss_request_options_t *options) {
    options->config = oss_config_create(options->pool);
    /* Inisialisasi tipe aos_string_t dengan string char*. */
    aos_str_set(&options->config->endpoint, endpoint);
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. */    
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    /* Aktifkan CNAME. CNAME digunakan untuk memetakan nama domain kustom ke bucket tujuan. */
    options->config->is_cname = 1;
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main() {
    aos_pool_t *p;
    oss_request_options_t *options;
    /* Inisialisasi variabel global. */
    if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
        return -1;
    }
    /* Inisialisasi pool memori dan opsi. */
    aos_pool_create(&p, NULL);
    options = oss_request_options_create(p);
    init_options(options); 
    /* Lepaskan pool memori. Ini melepas memori yang dialokasikan untuk sumber daya selama permintaan. */
    aos_pool_destroy(p);
    /* Lepaskan sumber daya global yang sebelumnya dialokasikan. */
    aos_http_io_deinitialize();
    return 0;
}