全部产品
Search
文档中心

Object Storage Service:Perlindungan hotlink (Android SDK)

更新时间:Nov 30, 2025

Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) Android untuk mengonfigurasi aturan akses berbasis Referer pada bucket Object Storage Service (OSS). Aturan tersebut mencakup daftar putih Referer, daftar hitam Referer, serta opsi untuk mengizinkan permintaan dengan Referer kosong. Fitur ini mencegah hotlinking terhadap file OSS Anda dan membantu menghindari biaya traffic yang tidak perlu.

Catatan penggunaan

  • Sebelum mengonfigurasi perlindungan hotlink, pastikan Anda memahami fitur ini terlebih dahulu. Untuk informasi selengkapnya, lihat Perlindungan hotlink.

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi (Android SDK).

  • Untuk menyetel atau menghapus konfigurasi perlindungan hotlink, Anda harus memiliki izin oss:PutBucketReferer. Untuk mengambil konfigurasi perlindungan hotlink, Anda harus memiliki izin oss:GetBucketReferer. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

Setel perlindungan hotlink

Kode berikut menunjukkan cara mengonfigurasi perlindungan hotlink:

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("examplebucket");
// Tambahkan daftar putih Referer. Parameter Referer mendukung karakter wildcard asterisk (*) dan tanda tanya (?).
ArrayList<String> referers = new ArrayList<String>();
referers.add("http://www.aliyun.com");
referers.add("https://www.aliyun.com");
// referers.add("http://www.www.alibabacloud.com/help");
// referers.add("http://www.?.aliyuncs.com");
request.setReferers(referers);

OSSAsyncTask task = oss.asyncPutBucketReferer(request, new OSSCompletedCallback<PutBucketRefererRequest, PutBucketRefererResult>() {
    @Override
    public void onSuccess(PutBucketRefererRequest request, PutBucketRefererResult result) {
        OSSLog.logInfo("code: " + result.getStatusCode());
    }
    @Override
    public void onFailure(PutBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());
    }
});
task.waitUntilFinished();

Ambil konfigurasi perlindungan hotlink

Kode berikut menunjukkan cara mengambil konfigurasi perlindungan hotlink:

GetBucketRefererRequest request = new GetBucketRefererRequest();
request.setBucketName("yourBucketName");
OSSAsyncTask task = oss.asyncGetBucketReferer(request, new OSSCompletedCallback<GetBucketRefererRequest, GetBucketRefererResult>() {
    @Override
    public void onSuccess(GetBucketRefererRequest request, GetBucketRefererResult result) {
        // Ambil daftar putih Referer bucket.
        ArrayList<String> list = result.getReferers();
        for (String ref : list){
            OSSLog.logInfo("info: " + ref);
        }
    }
    @Override
    public void onFailure(GetBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());
    }
});
task.waitUntilFinished();

Hapus konfigurasi perlindungan hotlink

Kode berikut menunjukkan cara menghapus konfigurasi perlindungan hotlink:

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("yourBucketName");
request.setAllowEmpty(true);
// Konfigurasi perlindungan hotlink tidak dapat dihapus secara langsung. Anda harus membuat aturan baru yang mengizinkan Referer kosong untuk menimpa aturan sebelumnya.
ArrayList<String> referers = new ArrayList<String>();

request.setReferers(referers);
OSSAsyncTask task = oss.asyncPutBucketReferer(request, new OSSCompletedCallback<PutBucketRefererRequest, PutBucketRefererResult>() {
    @Override
    public void onSuccess(PutBucketRefererRequest request, PutBucketRefererResult result) {
        OSSLog.logInfo("code: " + result.getStatusCode());

    }
    @Override
    public void onFailure(PutBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());

    }
});
task.waitUntilFinished();

Referensi

  • Untuk kode contoh lengkap mengenai perlindungan hotlink, lihat GitHub.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengonfigurasi perlindungan hotlink, lihat PutBucketReferer.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil konfigurasi perlindungan hotlink, lihat GetBucketReferer.