Uso de comandos de nivel de API (s3api) en la AWS CLI
Los comandos de nivel de API (incluidos en el conjunto de comandos de s3api
) proporcionan acceso directo a las API de Amazon Simple Storage Service (Amazon S3) y permiten realizar algunas operaciones no expuestas en los comandos de s3
de alto nivel. Estos comandos son el equivalente de los otros servicios de AWS que proporcionan acceso de nivel de API a la funcionalidad de los servicios. Para obtener más información acerca de los comandos s3
, consulte Uso de comandos de alto nivel (s3) en la AWS CLI
En este tema, se incluyen ejemplos en los que se muestra cómo se usan los comandos de más bajo nivel que se asignan a las API de Amazon S3. Además, puede encontrar ejemplos para cada comando de API de S3 en la sección s3api
de la AWS CLIguía de referencia de versión 2
Temas
Requisitos previos
Para ejecutar los comandos de s3api
, debe:
Instalar y configurar la AWS CLI. Para obtener más información, consulte Instalación o actualización de la versión más reciente de AWS CLI y Credenciales de autenticación y acceso para la AWS CLI.
-
El perfil que utilice debe tener permisos que permitan que se realicen las operaciones de la AWS mediante ejemplos.
-
Comprenda estos términos de Amazon S3:
-
Bucket: una carpeta de Amazon S3 de nivel superior.
-
Prefijo: una carpeta de Amazon S3 en un bucket.
-
Objeto: cualquier artículo alojado en un bucket de Amazon S3.
-
Aplicación de una ACL personalizada
Con los comandos de alto nivel, puede utilizar la opción --acl
para aplicar las listas de control de acceso (ACL) predefinidas en objetos de Amazon S3. Sin embargo, no puede usar ese comando para establecer ACL en todo el bucket. Sin embargo, puede hacerlo con el comando de nivel de API put-bucket-acl
.
En el siguiente ejemplo se muestra cómo conceder control total a dos usuarios de AWS (user1@example.com y user2@example.com) y permisos de lectura a todos los usuarios. El identificador para "everyone" (todos) proviene de un URI especial que se pasa como parámetro.
$
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--grant-full-control 'emailaddress="user1@example.com
",emailaddress="user2@example.com
"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'
Para obtener más información acerca de cómo construir las ACL, consulte PUT Bucket acl en la Referencia de la API de Amazon Simple Storage Service. Los comandos ACL de s3api
en la CLI, como put-bucket-acl
, usan la misma notación abreviada de argumentos.
Configuración de una política de registro
El comando de la API put-bucket-logging
configura una política de registro del bucket.
En el siguiente ejemplo, se concede al usuario de AWS user@example.com control total sobre los archivos de registro, y todos los usuarios tendrán acceso de lectura a ellos. Tenga en cuenta que el comando put-bucket-acl
también es necesario para conceder al sistema de entrega de registros de Amazon S3 (especificado por un URI) los permisos necesarios para leer y escribir los registros en el bucket.
$
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'$
aws s3api put-bucket-logging --bucket
amzn-s3-demo-bucket
--bucket-logging-status file://logging.json
El archivo logging.json
del comando anterior contiene lo siguiente.
{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "amzn-s3-demo-bucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "
user@example.com
" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] } }
Recursos
referencia de AWS CLI:
Referencia de servicio:
-
Uso de buckets de Amazon S3 en la Guía del usuario de Amazon S3
-
Uso de objetos de Amazon S3 en la Guía del usuario de Amazon S3
-
Listado jerárquico de las claves con un prefijo y un delimitador en la Guía del usuario de Amazon S3
-
Anulación de cargas multiparte a un bucket de S3 con AWS SDK for .NET (bajo nivel) en la Guía del usuario de Amazon S3