De forma predeterminada, la lista de control de acceso (ACL) de un objeto en un bucket de Object Storage Service (OSS) es privada. Solo el propietario del objeto tiene permiso para acceder a él. Sin embargo, el propietario puede ejecutar el comando sign para generar una URL firmada del objeto y compartirla con usuarios externos. Esta URL se genera mediante credenciales de acceso y autoriza a terceros a descargar o previsualizar el objeto durante un periodo determinado.
Otros usuarios pueden acceder a un objeto mediante su URL firmada. Este acceso se otorga sin importar si la ACL del objeto es public-read o private, ni si una política de bucket o de RAM le concede acceso al usuario.
En ossutil 1.6.16 y versiones posteriores, use
ossutilcomo nombre del binario en la línea de comandos. No necesita actualizar el nombre del binario según el sistema operativo. En versiones de ossutil anteriores a la 1.6.16, debe especificar un nombre de binario que corresponda al sistema operativo. Para obtener más información, consulte ossutil command reference.
Formato del comando
ossutil sign cloud_url
[--timeout <value>]
[--version-id <value>]
[--trafic-limit <value>]
[--disable-encode-slash]
[--payer <value>]
[--query-param <value>]
A continuación se describen los parámetros y las opciones.
|
Elemento de configuración |
Descripción |
|
cloud_url |
La ruta completa del objeto en el bucket de OSS. |
|
--timeout |
El tiempo de expiración de la URL firmada, en segundos. Valor predeterminado: 60. Importante
La suma de la marca de tiempo UNIX actual y el tiempo de expiración no puede exceder 9223372036854775807. De lo contrario, se produce un error de desbordamiento. Por ejemplo, si la marca de tiempo UNIX actual es 1643341269, el tiempo máximo de expiración no puede superar 9223372035211434538. |
|
--version-id |
El identificador de versión del objeto. Este parámetro solo aplica a objetos en buckets donde el control de versiones está habilitado o suspendido. |
|
--trafic-limit |
El límite de velocidad para el acceso HTTP, en bit/s. El valor predeterminado es 0, lo que indica que no hay límite. El valor debe estar entre 819200 y 838860800, equivalente a un rango de 100 KB/s a 100 MB/s. |
|
--disable-encode-slash |
No codifica las barras diagonales (/) en cloud_url. |
|
--payer |
El método de pago de la solicitud. Para que quien realiza la solicitud pague el tráfico y las solicitudes generadas al acceder a los recursos, establezca esta opción en requester. |
|
--query-param |
Los parámetros de consulta de la solicitud. Este parámetro se puede especificar varias veces. Por ejemplo, configúrelo para el procesamiento de imágenes. Los parámetros compatibles con --query-param incluyen a continuación: 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 y x-oss-ac-forward-allow. Para obtener más información sobre estos parámetros, consulte Signature V1 y GetObject. Nota
El parámetro --query-param solo es compatible con ossutil 1.7.15 y versiones posteriores. |
Ejemplos
-
Genere una URL firmada para el objeto exampleobject.png en el bucket examplebucket. El periodo de tiempo de espera predeterminado es de 60 segundos.
ossutil sign oss://examplebucket/exampleobject.png -
Genere una URL firmada para el objeto exampleobject.png en el bucket examplebucket y establezca el periodo de tiempo de espera en 3600 segundos.
ossutil sign oss://examplebucket/exampleobject.png --timeout 3600 -
Genere una URL firmada para el objeto exampleobject.png en el bucket examplebucket, establezca el periodo de tiempo de espera en 7200 segundos y limite la velocidad de acceso a 100 MB/s.
ossutil sign oss://examplebucket/exampleobject.png --timeout 7200 --trafic-limit 838860800 -
Genere una URL firmada para una versión específica del objeto exampleobject.jpg en el bucket examplebucket, que tiene el control de versiones habilitado, y establezca el periodo de tiempo de espera en 1800 segundos.
ossutil sign oss://examplebucket/exampleobject.jpg --timeout 1800 --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** -
Genere una URL firmada para una imagen procesada. Este comando cambia el tamaño de la imagen exampleobject.jpg en el bucket examplebucket a 100 × 100 píxeles y la rota 90 grados.
ossutil sign oss://examplebucket/exampleobject.jpg --query-param x-oss-process:image/resize,m_fixed,w_100,h_100/rotate,90 -
Genere una URL firmada para una imagen procesada. Este comando cambia el tamaño de la imagen exampleobject.jpg en el bucket examplebucket a 100 × 100 píxeles, la rota 90 grados y limita la velocidad de acceso 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 -
Si el comando se ejecuta correctamente, la salida incluye el tiempo que tomó generar la URL, el tiempo de expiración de la URL y la firma. A continuación se muestra un ejemplo de la salida:
https://examplebucket.ss-cn-hangzhou.aliyuncs.com/exampleobject.png?Expires=1608282224&OSSAccessKeyId=LTAI****************&Signature=jo4%**************************** 0.368676(s) elapsed
Opciones comunes
Para acceder a un bucket en otra región, use -e y especifique el endpoint. Si necesita acceder a un bucket propiedad de otra cuenta de Alibaba Cloud, utilice -i para el AccessKey ID y -k para el AccessKey secret.
Por ejemplo, ejecute el siguiente comando para generar una URL firmada del objeto exampletest.jpg y establecer el periodo de tiempo de espera en 3600 segundos. El objeto se encuentra en el bucket testbucket, ubicado en la región China (Shanghai) y perteneciente a otra cuenta de Alibaba Cloud.
ossutil sign oss://testbucket/exampletest.jpg --timeout 3600 -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret