Por padrão, a lista de controle de acesso (ACL) de um objeto em um bucket do Object Storage Service (OSS) é privada. Apenas o proprietário do objeto tem permissão para acessá-lo. No entanto, o proprietário pode executar o comando sign para gerar e compartilhar uma URL assinada do objeto com usuários terceiros. A URL assinada utiliza credenciais de acesso e autoriza usuários terceiros a baixar ou visualizar o objeto por um período determinado.
Outros usuários podem acessar um objeto por meio de sua URL assinada. Esse acesso é concedido independentemente de a ACL do objeto ser public-read ou private, ou de uma política de bucket ou política do RAM conceder acesso ao usuário.
A partir do ossutil 1.6.16, você pode usar
ossutilcomo nome do binário na linha de comando, sem necessidade de atualizar o nome do binário conforme o sistema operacional. Para versões anteriores ao ossutil 1.6.16, especifique um nome de binário correspondente ao sistema operacional. Para mais informações, consulte ossutil command reference.
Formato do comando
ossutil sign cloud_url
[--timeout <value>]
[--version-id <value>]
[--trafic-limit <value>]
[--disable-encode-slash]
[--payer <value>]
[--query-param <value>]
A tabela a seguir descreve os parâmetros e as opções disponíveis.
|
Item de configuração |
Descrição |
|
cloud_url |
Caminho completo do objeto no bucket do OSS. |
|
--timeout |
Tempo de expiração da URL assinada, em segundos. Valor padrão: 60. Importante
A soma do timestamp UNIX atual com o tempo de expiração não pode exceder 9223372036854775807. Caso contrário, ocorre um erro de overflow. Por exemplo, se o timestamp UNIX atual for 1643341269, o tempo máximo de expiração não pode ultrapassar 9223372035211434538. |
|
--version-id |
ID de versão do objeto. Este parâmetro se aplica apenas a objetos em buckets com versionamento ativado ou suspenso. |
|
--trafic-limit |
Limite de velocidade para acesso HTTP, em bit/s. O valor padrão é 0, indicando ausência de limite. O valor deve estar entre 819200 e 838860800, equivalente a 100 KB/s até 100 MB/s. |
|
--disable-encode-slash |
Não codifique as barras (/) em cloud_url. |
|
--payer |
Método de pagamento da requisição. Para que o solicitante pague pelo tráfego e pelas requisições geradas ao acessar os recursos, defina esta opção como requester. |
|
--query-param |
Parâmetros de consulta na requisição. Este parâmetro pode ser especificado várias vezes. Por exemplo, é possível utilizá-lo para processamento de imagens. Os parâmetros compatíveis com --query-param incluem: x-oss-process, x-oss-traffic-limit, response-content-language, response-expires, response-cache-control, response-content-disposition, response-content-encoding, x-oss-ac-source-ip, x-oss-ac-subnet-mask, x-oss-ac-vpc-id e x-oss-ac-forward-allow. Para mais informações sobre esses parâmetros, consulte Signature V1 e GetObject. Nota
O parâmetro --query-param é compatível apenas com o ossutil 1.7.15 e versões posteriores. |
Exemplos
-
Gere uma URL assinada para o objeto exampleobject.png no bucket examplebucket. O período de expiração padrão é de 60 segundos.
ossutil sign oss://examplebucket/exampleobject.png -
Gere uma URL assinada para o objeto exampleobject.png no bucket examplebucket com período de expiração de 3600 segundos.
ossutil sign oss://examplebucket/exampleobject.png --timeout 3600 -
Gere uma URL assinada para o objeto exampleobject.png no bucket examplebucket com período de expiração de 7200 segundos e velocidade de acesso limitada a 100 MB/s.
ossutil sign oss://examplebucket/exampleobject.png --timeout 7200 --trafic-limit 838860800 -
Gere uma URL assinada para uma versão específica do objeto exampleobject.jpg no bucket examplebucket (com versionamento ativado) e defina o período de expiração como 1800 segundos.
ossutil sign oss://examplebucket/exampleobject.jpg --timeout 1800 --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** -
Gere uma URL assinada para uma imagem processada. O comando a seguir redimensiona o objeto de imagem exampleobject.jpg no bucket examplebucket para 100 × 100 pixels e o rotaciona em 90 graus.
ossutil sign oss://examplebucket/exampleobject.jpg --query-param x-oss-process:image/resize,m_fixed,w_100,h_100/rotate,90 -
Gere uma URL assinada para uma imagem processada. O comando a seguir redimensiona o objeto de imagem exampleobject.jpg no bucket examplebucket para 100 × 100 pixels, rotaciona-o em 90 graus e limita a velocidade de acesso a 100 KB/s (819200 bit/s).
ossutil sign oss://examplebucket/exampleobject.jpg --query-param x-oss-process:image/resize,m_fixed,w_100,h_100/rotate,90 --query-param x-oss-traffic-limit:819200 -
Quando o comando é executado com sucesso, a saída inclui o tempo gasto para gerar a URL, o tempo de expiração da URL e a assinatura. Veja um exemplo de saída:
https://examplebucket.ss-cn-hangzhou.aliyuncs.com/exampleobject.png?Expires=1608282224&OSSAccessKeyId=LTAI****************&Signature=jo4%**************************** 0.368676(s) elapsed
Opções comuns
Para acessar um bucket em uma região diferente, use -e para especificar o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, use -i para o AccessKeyID e -k para o AccessKeySecret.
Por exemplo, execute o comando a seguir para gerar uma URL assinada para o objeto exampletest.jpg com período de expiração de 3600 segundos. O objeto está no bucket testbucket, localizado na região China (Shanghai) e pertencente a outra conta Alibaba Cloud.
ossutil sign oss://testbucket/exampletest.jpg --timeout 3600 -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret