Todos os produtos
Search
Central de documentação

Object Storage Service:Hotlink protection (Android SDK)

Última atualização: Sep 22, 2026

Use o SDK para Android e configure regras de acesso baseadas em Referer em seus buckets do Object Storage Service (oss). Essas regras incluem uma lista de permissões de Referer, uma lista de bloqueios de Referer e uma opção para permitir solicitações com um Referer vazio. Esse recurso impede o hotlinking de seus arquivos do oss e ajuda a evitar custos de tráfego desnecessários.

Notas de uso

  • Antes, configure a proteção contra hotlink e familiarize-se com este recurso. Para mais informações, consulte Hotlink protection.

  • Este tópico usa o endpoint público da região china (Hangzhou). Para acessar o oss a partir de outros service da alibaba cloud na mesma região, use um endpoint interno. Para obter detalhes sobre as regiões e os endpoints compatíveis, consulte Regions and endpoints.

  • Este tópico mostra como crie uma instância do OSSClient com um endpoint do oss. Para configurações alternativas, como o uso de um domínio personalizado ou a autenticação com credenciais do Security Token Service (STS), consulte Initialization (Android SDK).

  • Para defina ou exclua a proteção contra hotlink, é necessário ter a permissão oss:PutBucketReferer. Para obter a configuração de proteção contra hotlink, é necessário ter a permissão oss:GetBucketReferer. Para mais informações, consulte Attach a custom policy to a RAM user.

Defina a proteção contra hotlink

O código de exemplo a seguir mostra como configure a proteção contra hotlink para um 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();

Obter a configuração de proteção contra hotlink

O código de exemplo a seguir mostra como consultar as configurações de proteção contra hotlink de um 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();

Exclua a configuração de proteção contra hotlink

O código de exemplo a seguir mostra como exclua as configurações de proteção contra hotlink de um 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();

Referências

  • Para obter o código de exemplo completo de proteção contra hotlink, consulte o GitHub.

  • Para mais informações sobre a operação de API para configure a proteção contra hotlink, consulte PutBucketReferer.

  • Para mais informações sobre a operação de API para obter a configuração de proteção contra hotlink, consulte GetBucketReferer.