Tous les produits
Search
Centre de documentation

Object Storage Service:Hotlink protection (Android SDK)

Dernière mise à jour :Aug 18, 2026

Le SDK Android vous permet de configurer des règles d'accès basées sur le champ Referer pour vos buckets Object Storage Service (OSS). Ces règles incluent une liste blanche et une liste noire de Referers, ainsi qu'une option autorisant les requêtes avec un Referer vide. Cette fonctionnalité empêche le hotlinking de vos fichiers OSS et vous aide à éviter des frais de trafic inutiles.

Notes d'utilisation

  • Avant de configurer la protection contre le hotlinking, assurez-vous de bien comprendre cette fonctionnalité. Pour plus d'informations, consultez la rubrique Protection contre le hotlinking.

  • Cette rubrique utilise l'endpoint public de la région Chine (Hangzhou). Pour accéder à OSS depuis d'autres services Alibaba Cloud dans la même région, utilisez un endpoint interne. Pour obtenir la liste des régions et endpoints pris en charge, consultez la rubrique Régions et endpoints.

  • Cette rubrique explique comment créer une instance OSSClient avec un endpoint OSS. Pour d'autres configurations, telles que l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants Security Token Service (STS), consultez la rubrique Initialisation (SDK Android).

  • Pour définir ou supprimer la protection contre le hotlinking, vous devez disposer de l'autorisation oss:PutBucketReferer. Pour récupérer la configuration de la protection contre le hotlinking, vous devez disposer de l'autorisation oss:GetBucketReferer. Pour plus d'informations, consultez la rubrique Attacher une politique personnalisée à un utilisateur RAM.

Configurer la protection contre le hotlinking

L'exemple de code suivant montre comment configurer la protection contre le hotlinking pour un bucket :

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("examplebucket");
// Add a Referer whitelist. The Referer parameter supports the asterisk (*) and question mark (?) wildcard characters.
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();

Récupérer la configuration de la protection contre le hotlinking

L'exemple de code suivant montre comment interroger les configurations de hotlinking d'un bucket :

GetBucketRefererRequest request = new GetBucketRefererRequest();
request.setBucketName("yourBucketName");
OSSAsyncTask task = oss.asyncGetBucketReferer(request, new OSSCompletedCallback<GetBucketRefererRequest, GetBucketRefererResult>() {
    @Override
    public void onSuccess(GetBucketRefererRequest request, GetBucketRefererResult result) {
        // Get the Referer whitelist of the 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();

Supprimer la configuration de la protection contre le hotlinking

L'exemple de code suivant montre comment supprimer les configurations de protection contre le hotlinking d'un bucket :

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("yourBucketName");
request.setAllowEmpty(true);
// Hotlink protection configurations cannot be directly cleared. You must create a new rule that allows empty Referers to overwrite the previous rule.
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();

Références

  • Pour consulter l'exemple de code complet relatif à la protection contre le hotlinking, rendez-vous sur GitHub.

  • Pour plus d'informations sur l'opération API permettant de configurer la protection contre le hotlinking, consultez la rubrique PutBucketReferer.

  • Pour plus d'informations sur l'opération API permettant de récupérer la configuration de la protection contre le hotlinking, consultez la rubrique GetBucketReferer.