Guía de la API de myQNAPcloud Object S3
Productos Aplicables
myQNAPcloud Object
¿Qué es myQNAPcloud Object?
myQNAPcloud Object es un servicio de Almacenamiento de objetos basado en la nube, diseñado para proporcionar un Almacenamiento de datos de alto rendimiento, confiable y seguro para una amplia gama de aplicaciones y casos de uso. Este servicio está diseñado para ser completamente compatible con la API de Amazon Web Service Simple Almacenamiento Service (AWS S3), asegurando una integración perfecta con aplicaciones y dispositivos de puerta de enlace compatibles con S3.
myQNAPcloud Object está diseñado para individuos y organizaciones que buscan una infraestructura de Almacenamiento de datos rentable y eficiente. Diseñado para trabajar con aplicaciones compatibles con S3, myQNAPcloud Object permite a los usuarios aprovechar herramientas y flujos de trabajo familiares mientras se benefician de la fiabilidad y flexibilidad del ecosistema de QNAP.
- Compatibilidad: myQNAPcloud Object está diseñado para ser completamente compatible con la API de AWS S3, asegurando que las aplicaciones existentes compatibles con AWS S3 puedan funcionar sin problemas.
- Rendimiento: myQNAPcloud Object ofrece una solución de Almacenamiento de alto rendimiento optimizada para la fiabilidad y la eficiencia.
Acerca de la Guía de API S3 de myQNAPcloud Object
Aunque myQNAPcloud Object se alinea estrechamente con AWS S3, ciertas características pueden haber sido mejoradas o implementadas de manera diferente. Esta guía tiene como objetivo aclarar estas diferencias para ayudar a los usuarios a maximizar el potencial de myQNAPcloud Object.
Esta guía utiliza ejemplos que involucran el acceso a Buckets en regiones específicas de myQNAPcloud Object. Para obtener más información sobre los puntos finales específicos de la región y las URL del servicio, consulte "URLs del Servicio para Regiones de myQNAPcloud Object Almacenamiento".
- URLs Regionales: Al acceder a Buckets, asegúrese de utilizar URLs específicas para la región de myQNAPcloud Object Almacenamiento donde se crea su bucket. Usar la URL incorrecta puede permitir solicitudes GET pero podría resultar en errores para operaciones PUT o DELETE. Consulte las [URLs del Servicio para Regiones de myQNAPcloud Object Almacenamiento].
- ASW IAM: A diferencia de AWS, myQNAPcloud Object no incluye soporte para AWS IAM (Identity and Access Management). Por lo tanto, esta guía se centra exclusivamente en la compatibilidad con la API S3 y no hace referencia a las capacidades relacionadas con IAM.
Introducción a la API REST
Designación del Host
myQNAPcloud Object admite tanto solicitudes de estilo de ruta como de estilo virtual, similar a AWS S3. Se requiere un nombre de host único (por ejemplo, s3.us-east-1.myqnapcloud.io frente a s3.amazonaws.com). Recomendamos usar solicitudes de estilo de ruta, como se muestra en todos los ejemplos de esta guía (por ejemplo, http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object) porque las solicitudes de estilo de ruta ofrecen mayor flexibilidad en la nomenclatura de los buckets, evitando conflictos de nombres de dominio.
Siempre Consistente
A diferencia del modelo de consistencia fuerte de AWS S3, myQNAPcloud Object proporciona una vista "siempre consistente" de todas las operaciones. Esto asegura que cualquier operación que siga a otra producirá resultados consistentes. Por ejemplo, después de eliminar un objeto (operación DELETE), realizar una solicitud HEAD posterior siempre confirmará la eliminación del objeto, eliminando la necesidad de programación adicional para esperar la finalización de la operación.
Autenticación de Solicitudes
myQNAPcloud Object admite tanto versiones autónomas como de firma 2 y 4, compatibles con AWS S3, para encabezados y parámetros de consulta. Aunque la versión de firma 4 ofrece mejor seguridad, requiere más recursos computacionales debido a la sobrecarga de calcular el hash SHA256. Si el rendimiento es crítico, se puede usar la versión de firma 2, con MD5 (devuelto como el encabezado ETag) asegurando la integridad de los datos.
Para solicitudes de firma de la versión 4, se admiten todas las regiones para las solicitudes de firma de myQNAPcloud Object.
myQNAPcloud Object no admite la firma de solicitudes para cargas basadas en navegador o solicitudes de formularios HTML, ya que estas operaciones no están actualmente soportadas.
Para la firma de la versión 2, las siguientes claves de sub-recurso se especifican como parámetros de consulta en las solicitudes:
- append
- compose
- force_delete=true
Estos parámetros de consulta deben incluirse al calcular la firma para las operaciones PutObject y DeleteBucket.
Respuestas de Error
Siempre que sea posible, myQNAPcloud Object utiliza respuestas de error compatibles con AWS S3. También se pueden proporcionar códigos de error adicionales para una funcionalidad mejorada.
Códigos de Error HTTP
| Código de Error | Descripción de myQNAPcloud Object | Código de Estado HTTP |
|---|---|---|
| No Disponible | Temporalmente no disponible | 503 |
| No Recuperable | Datos No Recuperables | |
| No Implementado | No Implementado | 501 |
| Entidad de BD no encontrada | No existe tal entidad | 404 |
| Entidad de BD encontrada | La entidad ya existe | 409 |
| Error de desconexión | Conexión cerrada | 410 |
| Error interno del servidor | Error interno: Hemos encontrado un error interno. Por favor, contacte con el soporte al cliente. | 500 |
| Estado prohibido | Acceso denegado | 403 |
| Acceso prohibido | ||
| Cuenta no activada | ||
| Problema de cuenta | ||
| Bloqueo de autenticación: Ha habido demasiados intentos de acceder a la cuenta con credenciales incorrectas. Por favor, inténtelo de nuevo en cinco minutos. | ||
| ID de clave de acceso no válido: El ID de clave de acceso de AWS que proporcionó no existe en nuestros registros. | ||
| Código de autenticación no válido: El código de autenticación para el dispositivo no es válido. | ||
| Tiempo de solicitud demasiado desviado: La diferencia entre el tiempo de la solicitud y el tiempo actual es demasiado grande. | ||
| Estado del objeto no válido: La operación no es válida para el estado actual del objeto. | ||
| Solicitud incorrecta | Encabezado de autorización mal formado | 400 |
| Error en los parámetros de consulta de autorización | ||
| Digest incorrecto: El Content-MD5 que especificó no coincide con lo que recibimos. | ||
| Solicitud incorrecta: Se produjo un error al analizar la solicitud HTTP. | ||
| Firma incompleta: La solicitud debe contener una firma que cumpla con los estándares de AWS. | ||
| Acción no válida | ||
| Argumento no válido | ||
| Digest no válido: El Content-MD5 que especificó no es válido. | ||
| Entrada no válida | ||
| Valor de parámetro no válido: Se proporcionó un valor no válido o fuera de rango para el parámetro de entrada. | ||
| Solicitud no válida | ||
| Política mal formada | ||
| Documento de política mal formado | ||
| Violación de política de contraseñas | ||
| Error de validación | ||
| Desajuste de X Amz Content SHA256: El encabezado 'x-amz-content-sha256' proporcionado no coincide con lo que se calculó. | ||
| Cifrado no permitido: No se permiten claves de cifrado proporcionadas por el usuario en esta operación. | ||
| El objeto se almacenó utilizando una forma de cifrado del lado del servidor. Se deben proporcionar los parámetros correctos para recuperar el objeto. | ||
| Entidad demasiado grande: Su carga propuesta es mayor que el tamaño máximo permitido. | ||
| Entidad demasiado pequeña: Su carga propuesta es menor que el tamaño mínimo permitido. | ||
| Solicitud de cumplimiento ilegal | ||
| Excepción de configuración de versionado ilegal: La configuración de versionado especificada en la solicitud no es válida. | ||
| Cuerpo incompleto: No proporcionó el número de bytes especificado por el encabezado HTTP Content-Length. | ||
| Solicitud de ACL no válida: Debe proporcionar solo uno de los encabezados ACL o un cuerpo XML al configurar ACLs. | ||
| Argumento no válido | ||
| Nombre de bucket no válido: El bucket especificado no es válido. | ||
| Error de algoritmo de cifrado no válido: La solicitud de cifrado que especificó no es válida. Valor admitido: AES256. | ||
| Orden de partes no válido: La lista de partes no estaba en orden ascendente. Las partes deben ordenarse por número de parte. | ||
| Parte no válida: Una o más de las partes especificadas no se pudieron encontrar. La parte puede no haber sido cargada, o la etiqueta de entidad especificada puede no coincidir con la etiqueta de entidad de la parte. | ||
| Documento de política no válido: El contenido del formulario no cumple con las condiciones especificadas en el documento de política. | ||
| Error de clave demasiado larga: Su clave es demasiado larga. | ||
| Bucket de registro mismo propietario: El bucket de destino de registro debe tener el mismo propietario que el bucket que se está registrando. | ||
| XML malformado: El XML que proporcionó no estaba bien formado o no se validó contra nuestro esquema publicado. | ||
| Metadatos demasiado grandes: Sus encabezados de metadatos exceden el tamaño máximo permitido. | ||
| Tiempo de espera de la solicitud: Su conexión de socket con el servidor no fue leída ni escrita dentro del período de tiempo de espera. | ||
| Demasiados Buckets: Ha intentado crear más Buckets de los permitidos. | ||
| Demasiados componentes: Un objeto compuesto no puede tener más de 1024 componentes. | ||
| Concesión no resoluble por dirección de correo electrónico: La dirección de correo electrónico que proporcionó no coincide con ninguna cuenta registrada. | ||
| Cuota de Almacenamiento excedida: Su cuenta ha superado su límite de Almacenamiento. | ||
| Cuenta de bucket inactiva: La cuenta que posee este bucket no está activa. | ||
| Estado desaparecido | Conexión cerrada: La conexión de red fue cerrada. | 410 |
| Estado de entidad no procesable | Datos irrecuperables: Los datos en la solicitud son irrecuperables. Por favor, contacte con el servicio de atención al cliente. | 422 |
| Estado de conflicto | Conflicto de eliminación | 409 |
| La entidad ya existe | ||
| Entidad temporalmente no modificable: La entidad es temporalmente no modificable. Por favor, inténtelo de nuevo más tarde. | ||
| Límite excedido | ||
| Operación abortada: Una operación condicional en conflicto está actualmente en progreso contra este recurso. Por favor, inténtelo de nuevo. | ||
| El bucket ya existe | ||
| El bucket no está vacío | ||
| Configuraciones de cumplimiento bloqueadas: Las configuraciones de cumplimiento están ahora bloqueadas y no se pueden cambiar. | ||
| Estado no encontrado | No existe tal entidad | 404 |
| No existe tal configuración de ciclo de vida: La configuración del ciclo de vida no existe. | ||
| No existe tal bucket: El bucket especificado no existe. | ||
| No existe tal política de bucket: La política del bucket no existe. | ||
| No existe tal clave: La clave especificada no existe. | ||
| No existe tal configuración de replicación: La configuración de replicación no existe. | ||
| Error de conjunto de etiquetas inexistente: No hay un conjunto de etiquetas asociado con el bucket. | ||
| No existe tal carga: La carga especificada no existe. El ID de carga puede ser inválido, o la carga puede haber sido abortada o completada. | ||
| No existe tal versión: La versión especificada no existe. | ||
| Estado no implementado | No implementado: Un encabezado que proporcionó implica una funcionalidad que no está implementada. | 501 |
| Estado de servicio no disponible | Temporalmente no disponible: Los recursos para esta operación están temporalmente no disponibles. Por favor, inténtelo de nuevo más tarde. | 503 |
| Estado encontrado | La clave ya existe | 302 |
| Estado de método no permitido | Método no permitido: Este método no está permitido para nadie más que el propietario de la cuenta. | 405 |
| Método no permitido: El método especificado no está permitido contra este recurso. | ||
| Estado de longitud requerida | Falta la longitud del contenido: Debe proporcionar el encabezado HTTP Content-Length. | 411 |
Códigos de error TCP
myQNAPcloud Object admite los siguientes códigos de error TCP:
- EOF inesperado
- Tubería rota
- Conexión restablecida por el par
No compatible en myQNAPcloud Object
| Operación | Descripción |
|---|---|
| SOAP | AWS S3 ha dejado de admitir SOAP, y myQNAPcloud Object no admite ninguna operación SOAP. |
Operaciones en Buckets con la API S3 de myQNAPcloud Object
Las operaciones en Buckets incluyen: eliminación, cambio de nombre y registro de Buckets, así como soporte para compartir recursos de origen cruzado (CORS), política de ciclo de vida, bloqueo de objetos y cumplimiento.
Eliminación forzada de bucket
AWS S3 no permite eliminar un bucket si contiene objetos que no han sido eliminados.
myQNAPcloud Object proporciona una opción de eliminación forzada que primero elimina todos los objetos en el bucket y luego elimina el bucket. La eliminación de objetos está sujeta a políticas y requisitos de cumplimiento en el bucket.
Para usar la opción de eliminación forzada, simplemente agréguela como una cadena de consulta. Por ejemplo:
DELETE http://s3.us-east-1.myqnapcloud.io/my-bucket?force_delete=true HTTP/1.1Cambiar el nombre de un bucket
AWS S3 no admite el cambio de nombre de Buckets. Solo admite el cambio de nombre de objetos en un bucket.
myQNAPcloud Object admite el cambio de nombre de Buckets. El nuevo nombre del bucket no debe estar en uso para que el cambio de nombre sea exitoso. El solicitante debe tener el permiso de política s3:CreateBucket para cambiar el nombre de un bucket.
Para cambiar el nombre de un bucket, use el método HTTP MOVE junto con el campo de encabezado "Destination" para dar el nuevo nombre del bucket. Por ejemplo:
MOVE http://s3.us-east-1.myqnapcloud.io/my_old_bucket HTTP/1.1
Destino: mi_nuevo_bucketEliminación MFA (Autenticación Multifactor)
myQNAPcloud Object admite el encabezado "x-amz-mfa" mientras:
- configura la versión en un bucket, o
- elimina objetos con solicitudes de eliminación compatibles con AWS S3.
myQNAPcloud Object no requiere el encabezado "x-amz-mfa" si las credenciales de acceso del usuario que firma la solicitud fueron autenticadas con MFA. myQNAPcloud Object solo admite dispositivos MFA virtuales.
Número máximo de Buckets
El estándar AWS S3 solo admite 100 Buckets.
myQNAPcloud Object permite un máximo de 1000 Buckets por cuenta y este número puede aumentarse contactando con el Soporte al Cliente de myQNAPcloud Object.
Registro de Bucket
myQNAPcloud Object admite el registro de buckets, que crea un archivo de registro de texto de todo el acceso a un bucket. El formato del archivo de registro es idéntico al archivo de registro de AWS S3.
El registro de buckets de myQNAPcloud Object no requiere configuraciones de permisos ACL para almacenar registros en un bucket de destino. Aunque puedes otorgar configuraciones de permisos en la solicitud de registro o en un ACL, no son necesarias para que el registro funcione en myQNAPcloud Object. Sin embargo, el bucket que es un destino para los archivos de registro debe estar dentro de la misma cuenta que el bucket que se está registrando.
Compatibilidad con el uso compartido de recursos de origen cruzado (CORS) de buckets
Para la compatibilidad con el acceso del navegador a myQNAPcloud Object como servidor web, el servidor myQNAPcloud Object devolverá encabezados CORS cuando se proporcione el encabezado "Origin" en una solicitud HTTP. Además, el servidor admite el método HTTP OPTIONS en Buckets u objetos para devolver los encabezados CORS necesarios para una prueba previa del navegador antes de acceder a myQNAPcloud Object.
Diferente de AWS, myQNAPcloud Object devuelve las configuraciones que permitirán al navegador acceso completo a myQNAPcloud Object. Por lo tanto, myQNAPcloud Object no admite las funciones de AWS que permiten un PUT y GET en un bucket con el parámetro "cors" en la URL. Ten en cuenta que permitir el acceso completo del navegador a los datos no afecta la seguridad del acceso a ningún objeto y todas las políticas de acceso seguirán aplicándose.
Los siguientes son los encabezados HTTP devueltos por defecto cuando se proporciona el encabezado "Origin" en una solicitud HTTP:
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, DELETE, MOVE, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 86400Política de ciclo de vida
La función de ciclo de vida establece una política de ciclo de vida con reglas para definir acciones que deseas que myQNAPcloud Object realice durante la vida de un objeto. Esta función reemplaza la necesidad de eliminar manualmente un objeto después de un período de retención.
Configuración de ajustes de ciclo de vida
La configuración del ciclo de vida para un bucket se realiza con el comando "put-bucket-lifecycle-configuration". Por ejemplo:
$ aws s3api put-bucket-lifecycle-configuration --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.io --lifecycle-configuration file://lifecycle.json
{
"Rules": [
{
"Expiration": {
"Days": 1
},
"ID": "lifecycle_rule_1",
"Filter": {
"And": {
"ObjectSizeGreaterThan": 1,
"ObjectSizeLessThan": 21474836480
}
},
"Status": "Enabled"
},
{
"Expiration": {
"Days": 1
},
"ID": "object_lifecycle_rule_bucket_6807766",
"Filter": {
"Prefix": "1"
},
"Status": "Enabled"
}
]
}Aquí hay otro ejemplo:
PUT https://s3.us-east-1.myqnapcloud.io/1-1-1-1?lifecycle
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>lifecycle_rule_1</ID>
<Filter>
<And>
<ObjectSizeGreaterThan>1</ObjectSizeGreaterThan>
<ObjectSizeLessThan>21474836480</ObjectSizeLessThan>
</And>
</Filter>
<Status>Enabled</Status>
</Rule>
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>object_lifecycle_rule_bucket_6807766</ID>
<Filter>
<Prefix>1</Prefix>
</Filter>
<Status>Enabled</Status>
</Rule>
</LifecycleConfiguration>No hay cuerpo de respuesta para esta llamada.
Recuperando configuraciones del ciclo de vida
Las configuraciones del ciclo de vida para un bucket se pueden recuperar con el comando "get-bucket-lifecycle-configuration". Por ejemplo:
$ aws s3api get-bucket-lifecycle-configuration --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.io
{
"Rules": [
{
"Expiration": {
"Days": 1
},
"ID": "lifecycle_rule_1",
"Filter": {
"And": {
"ObjectSizeGreaterThan": 1,
"ObjectSizeLessThan": 21474836480
}
},
"Status": "Enabled"
},
{
"Expiration": {
"Days": 1
},
"ID": "object_lifecycle_rule_bucket_6807766",
"Filter": {
"Prefix": "1"
},
"Status": "Enabled"
}
]
}Aquí hay otro ejemplo:
GET https://s3.us-east-1.myqnapcloud.io/1-1-1-1?lifecycle
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>lifecycle_rule_1</ID>
<Filter>
<And>
<ObjectSizeGreaterThan>1</ObjectSizeGreaterThan>
<ObjectSizeLessThan>21474836480</ObjectSizeLessThan>
</And>
</Filter>
<Status>Enabled</Status>
</Rule>
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>object_lifecycle_rule_bucket_6807766</ID>
<Filter>
<Prefix>1</Prefix>
</Filter>
<Status>Enabled</Status>
</Rule>
</LifecycleConfiguration>Eliminando configuraciones del ciclo de vida
Las configuraciones del ciclo de vida de un bucket se pueden eliminar con el comando "delete-bucket-lifecycle". Por ejemplo:
$ aws s3api delete-bucket-lifecycle --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.ioNo hay cuerpo de respuesta para esta llamada.
Bloqueo de objetos
myQNAPcloud Object admite un Bloqueo de objetos que evita la eliminación o sobrescritura de versiones de objetos por un tiempo determinado o indefinidamente.
| Etiqueta | Descripción |
|---|---|
| ObjectLockConfiguration | Esta es la etiqueta de nivel raíz obligatoria para la configuración de Bloqueo de objetos. |
| ObjectLockEnabled | Esta etiqueta debe configurarse como Habilitada. |
| Regla | Esto especifica la regla de Bloqueo de objetos para un bucket. Requiere tanto un modo como un período. El período puede ser Días o Años, pero debe seleccionar uno. No puede especificar Días y Años al mismo tiempo. El modo debe ser COMPLIANCE o GOVERNANCE. |
La configuración de Bloqueo de objetos para un bucket se especifica utilizando la cadena de consulta "?object-lock" junto con la configuración de Bloqueo de objetos como el cuerpo XML en la solicitud. Por ejemplo:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1
<ObjectLockConfiguration>
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>10</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>La configuración de Bloqueo de objetos para un bucket se puede recuperar obteniendo el bucket con la cadena de consulta "?object-lock". Por ejemplo:
GET https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1Cuerpo de la respuesta:
<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>10</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>También hay configuraciones de Bloqueo de objetos para cada objeto descrito en Operaciones en Objetos.
La configuración de Bloqueo de objetos para un bucket se puede borrar usando la cadena de consulta "?object-lock". Por ejemplo:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1Cuerpo de la respuesta:
<ObjectLockConfiguration>
<ObjectLockEnabled>Habilitado</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode></Mode>
<Days></Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>myQNAPcloud Object Cumplimiento
myQNAPcloud Object admite una política de cumplimiento que impide la eliminación de objetos y proporciona información adicional para demostrar que los datos originales no se modifican desde el momento en que se escribieron. La función de cumplimiento puede ser necesaria para ciertas necesidades regulatorias, pero también es útil para prevenir la eliminación accidental de datos.
El cumplimiento es diferente de la configuración de bloqueo de objetos para un bucket.
Puede establecer la política de cumplimiento en cualquier bucket controlando todos los objetos que se almacenan en ese bucket. Especifique la política de cumplimiento del bucket con las siguientes etiquetas XML.
| Etiqueta | Descripción |
|---|---|
| Estado | "habilitado" o "deshabilitado" para activar o desactivar el cumplimiento, respectivamente. La habilitación se aplicará inmediatamente a todos los objetos en el bucket. |
| Tiempo de bloqueo | El momento en que las configuraciones de cumplimiento están "bloqueadas"; las configuraciones no pueden reducirse mediante ninguna llamada API. Una vez bloqueadas, no se pueden desbloquear sin la intervención del Soporte al Cliente de QNAP. El tiempo de bloqueo le permite admitir dos casos de uso:
|
| DíasDeRetención | Un número entero para el número mínimo de días que los objetos siempre se retienen después de su fecha de creación o liberación de retención condicional. Puede extender la fecha de retención para cualquier objeto individual, pero no puede acortar la fecha. Este parámetro siempre es necesario. |
| RetenciónCondicional | Un valor Booleano ("true" o "false") que indica si los objetos recién creados se colocan en retención condicional, lo que significa que no se pueden eliminar hasta que la retención condicional se desactive explícitamente. El valor predeterminado es false si no se proporciona este parámetro. Tenga en cuenta que esta configuración puede cambiarse incluso después de que las configuraciones estén bloqueadas. |
La configuración de cumplimiento para un bucket se especifica utilizando la cadena de consulta "?compliance" junto con la configuración de cumplimiento como el cuerpo XML en la solicitud. Por ejemplo:
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket?complianceHTTP./1.1
<BucketComplianceConfiguration>
<Status>enabled</Status>
<LockTime>off</LockTime>
<RetentionDays>365</RetentionDays>
<DeleteAfterRetention>true</DeleteAfterRetention>
</BucketComplianceConfiguration>Después de habilitar el cumplimiento para un bucket, la política se aplica inmediatamente a todos los objetos en el bucket. Un intento de eliminar un objeto antes del período de retención devolverá un error.
La configuración de cumplimiento para un bucket se puede recuperar obteniendo el bucket con la cadena de consulta "?compliance". Por ejemplo:
GET http://s3.us-east-1.myqnapcloud.io/my-buck?complianceHTTP/1.1Cuerpo de la respuesta:
<BucketComplianceConfiguration xml ns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>enabled</Status>
<LockTime>2016-11-07T15:08:05Z</LockTime>
<IsLocked>false</IsLocked>
<RetentionDays>0</RetentionDays>
<ConditionalHold>false</ConditionalHold>
<DeleteAfterRetention>false</DeleteAfterRetention>
</BucketComplianceConfiguration>También hay configuraciones de cumplimiento para cada objeto descritas en Operaciones en Objetos.
Operaciones en Buckets No Soportadas en myQNAPcloud Object
| Operación | Descripción |
|---|---|
| Etiquetado de Bucket | El etiquetado de bucket no está disponible actualmente en myQNAPcloud Object. |
| Sitio web de Bucket | La configuración del sitio web no está disponible en myQNAPcloud Object. Dada la naturaleza de myQNAPcloud Object como un almacén de objetos a largo plazo, no esperamos admitir operaciones de sitio web en Buckets. El encabezado "x-amz-website-redirect-location" se ignora en cualquier solicitud de objeto. |
| Aceleración de Bucket | myQNAPcloud Object no implementa el subrecurso de aceleración de bucket de AWS S3. |
| Solicitud de Pago de Bucket | myQNAPcloud Object no admite el uso del subrecurso "requestPayment" para Buckets. |
| Configuración de Métricas | myQNAPcloud Object no admite la operación para recibir métricas de CloudWatch de un minuto, configurar alarmas de CloudWatch y acceder a Panel de control de CloudWatch para ver operaciones y rendimiento casi en tiempo real de su Almacenamiento de Amazon S3. |
Bloqueo Público de S3 | myQNAPcloud Object no admite la operación para bloquear centralmente el acceso público existente (ya sea posible a través de un ACL o una política) y asegurarse de que los elementos recién creados no se otorguen inadvertidamente acceso público. |
| S3 Select | myQNAPcloud Object no es compatible con la API S3 Select. |
Operaciones en objetos con la API S3 de myQNAPcloud Object
Las operaciones en objetos incluyen renombrar, componer, añadir y eliminar objetos, así como cifrado, clase de Almacenamiento, bloqueo de objetos y cumplimiento.
Renombrar objetos
myQNAPcloud Object admite la funcionalidad de mover un objeto, en efecto, renombrando el objeto al cambiar la clave. Esto elimina el proceso de dos pasos de primero copiar un objeto y luego eliminar el objeto original. El llamante debe tener permiso de política s3:PutObject en el bucket para renombrar objetos.
Para renombrar objetos, use el método HTTP MOVE junto con los siguientes parámetros en los encabezados de la solicitud que afectan la operación de movimiento.
| Sobrescribir | Un valor booleano que, cuando es "true", permite sobrescribir objetos de destino con la misma clave. De lo contrario, se genera un error y la clave original no se cambia. |
| X-Wasabi-Quiet | Un valor booleano que, cuando es "true", hace que el cuerpo de retorno del estado XML solo muestre las claves que encuentran errores. De lo contrario, todos los objetos renombrados se dan en el estado. El valor predeterminado es "false". |
| X-Wasabi-Prefix | Un valor booleano que, cuando es "true", significa que los valores dados para la fuente en la URL y el destino son prefijos, coinciden con la parte más a la izquierda de las claves. Conceptualmente, piense en el prefijo como una carpeta de objetos. De lo contrario, solo se renombran los objetos (incluyendo todas las versiones) que coinciden exactamente con la clave. El valor predeterminado es "false". |
La llamada devolverá los resultados como un cuerpo XML de la respuesta. Los resultados incluyen lo siguiente para cada objeto renombrado:
- clave de origen original,
- clave de destino renombrada,
- versión ID del objeto, y
- cualquier error en la operación de renombrado.
La opción silenciosa hará que los resultados solo enumeren las claves que encontraron un error.
A continuación se muestra un ejemplo, que renombra todos los objetos que comienzan con el prefijo “TestMove-Dir2/” para tener el nuevo prefijo “TestMove-Dir2-Renamed/
MOVE http://s3.us-east-1.myqnapcloud.io/my_bucket/TestMove-Dir2/HTTP/1.1 Destination:TestMove-Dir2-Renamed/X-Wasabi-Prefix:trueCuerpo de la respuesta:
<MoveObjectResult> <SourcePrefix>TestMove-Dir2/SourcePrefix> <DestinationPrefix>TestMove-Dir2-Renamed/DestinationPrefix> <MoveObject> <SourceKey>TestMove-Dir2/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/Obj1SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/Obj1DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/Obj2SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/Obj2DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/Obj1SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/Obj1DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/Obj2SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/Obj2DestinationKey> MoveObject> <MoveCount>7MoveCount> MoveObjectResult>Composición de objetos
myQNAPcloud Object ofrece una función para crear un nuevo objeto que se compone de otros objetos. Un objeto compuesto se forma no copiando los objetos de datos originales, sino vinculando el objeto compuesto a los objetos de datos. Esto contrasta con AWS S3, que no ofrece una forma de componer objetos. La operación de myQNAPcloud Object es mucho más rápida y no requiere múltiples copias de los datos originales. Los objetos compuestos originales pueden eliminarse en cualquier momento, y el sistema retendrá los datos originales mientras haya enlaces a los datos.
Componer objetos es una alternativa al uso de la función de carga multiparte para crear objetos de más de 5 GB. El llamante debe tener permiso de política s3:PutObject en el bucket para componer objetos. Los objetos compuestos pueden crearse a partir de otros objetos compuestos, así como de objetos de datos originales. Sin embargo, el número total de objetos de datos originales no puede exceder de 32 en ningún objeto compuesto. Los objetos compuestos solo pueden enlazarse a otros objetos en el mismo bucket.
La operación de composición se realiza utilizando el método HTTP PUT con el parámetro de cadena de consulta “?compose” para indicar que el objeto está compuesto por objetos dados en el cuerpo XML. El cuerpo XML contiene una lista de claves de objetos y, opcionalmente, los IDs de versión que forman el nuevo objeto. Si no se proporciona el ID de versión, se utiliza la última versión del objeto. El nuevo objeto parecerá ser un único objeto con todos los objetos de datos enlazados concatenados. El nuevo objeto compuesto no tiene un valor ETag (es decir, MD5), que es el MD5 de los objetos concatenados, sino más bien el resultado de hash de todos los MD5 de los objetos de datos juntos (como el cálculo realizado cuando se completan objetos de múltiples partes). Los objetos compuestos no pueden tener claves de cifrado proporcionadas por el usuario. Sin embargo, todos los datos se almacenan cifrados en reposo.
Solo se cobra por los metadatos utilizados en los objetos compuestos. Los datos originales utilizados en los objetos enlazados se cobran a la tarifa normal hasta que se eliminen todos los objetos compuestos que enlazan al objeto de datos original.
A continuación se muestra un ejemplo que compone un nuevo objeto “TestComp a partir de tres objetos: “TestCompose-Data-1”, “TestCompose-Data-2” y “TestCompose-Data-3”.
PUT http://s3.wasabisys.com/my_bucket/TestCompose-Object-1?composeHTTP/1.1Content-Type:text/xml
<ComposeRequest>
<Component>
<Key>TestCompose-Data-1</Key>
</Component>
<Component>
<Key>TestCompose-Data-2</Key>
</Component>
<Component>
<Key>TestCompose-Data-3</Key>
</Component>
</ComposeRequest>Adición a objetos
AWS S3 no ofrece una forma de añadir a los objetos.
Añadir a un objeto existente es una forma diferente de componer un objeto (ver Composición de objetos). La llamada sube los datos en el cuerpo a un objeto temporal y luego crea un nuevo objeto compuesto que consiste en los datos del objeto original con los datos recién subidos añadidos. Si el bucket tiene versiones, se crea una nueva versión del objeto compuesto mientras se mantienen los datos originales. Cuando no tiene versiones, el nuevo objeto compuesto reemplaza al objeto original. El llamante debe tener permiso de política s3:PutObject en el bucket para añadir a los objetos. Además, para un bucket sin versionado, puede ser necesario el permiso de política s3:DeleteObject para reemplazar el objeto original.
Al igual que los objetos compuestos, solo puedes añadir 1023 veces a cualquier objeto ya que cada uno crea un enlace a los datos subidos. Ten cuidado de no simplemente añadir pequeñas cantidades de datos muchas veces a un objeto ya que cada dato añadido subido crea un nuevo objeto sujeto a cargos mínimos por tamaño, y puede ralentizar el rendimiento debido a una lectura de datos pequeña. La operación de adición se realiza utilizando el método HTTP PUT con el parámetro de cadena de consulta “?append”. Los datos a añadir se suben en el cuerpo de la solicitud.
A continuación se muestra un ejemplo que añade la cadena “
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket/TestAppend-Object?appendHTTP/1.1Content-Length:15PUT Object Copy Usa Enlace
Normalmente, para renombrar objetos usando el protocolo AWS S3, un objeto se sube con un valor de clave. Luego, se realiza una operación PUT con el nuevo valor de clave copiado del valor de clave original, y se elimina el objeto del valor de clave original.
myQNAPcloud Object optimiza automáticamente esta secuencia vinculando el objeto del nuevo valor de clave a los datos originales del valor de clave copiado. Esto evita hacer otra copia de los datos, lo que resultaría en mayores cargos de Almacenamiento. Debido a que myQNAPcloud Object utiliza enlaces a los datos originales, cualquier objeto de tamaño hasta el límite de 5 TB puede ser copiado y no requiere el uso de una carga de múltiples partes.
Eliminar objeto MFADelete
Si la opción MFADelete está activada en la versionado del bucket, el “x-amz-mfa” no es necesario si las credenciales de acceso fueron firmadas usando MFA (ver también Eliminación MFA (Autenticación Multifactor)).
Si el registro del bucket está habilitado, eliminar múltiples objetos creará una entrada de registro separada para cada objeto que se elimine.
Encabezados de respuesta GET Object
Cualquier encabezado en la solicitud GET object que comience con “response-” se devolverá como un encabezado de respuesta (menos la cadena “response-”).
Cifrado del lado del servidor del objeto
myQNAPcloud Object cifra todos los datos almacenados en reposo independientemente del cifrado solicitado. El sistema usará cualquier clave de cifrado proporcionada por el llamante cuando se proporcione, o generará una clave de cifrado aleatoria para cada objeto si no se proporciona una clave del cliente. Si el cliente proporciona la clave de cifrado, similar a AWS S3, myQNAPcloud Object no mantendrá una copia de la clave del cliente en los metadatos y el llamante debe proporcionar la clave de cifrado para leer los datos. No se necesita ninguna acción por parte del llamante si myQNAPcloud Object proporciona la clave de cifrado.
El llamante puede proporcionar la clave de cifrado usando los encabezados x-amz-server-side-encryption-customer-algorithm, x-amz-server-side-encryption-customer-key y x-amz-server-side-encryption-customer-key-MD5. Estos parámetros funcionan de manera idéntica a AWS S3.
myQNAPcloud Object no admite un servicio de gestión de claves. Por lo tanto, el “x-amz-server-side-encryption” no es compatible junto con toda la funcionalidad de “aws:kms”. myQNAPcloud Object almacena un MD5 para los datos que siempre son los datos cargados independientemente del cifrado del lado del servidor.
Clase de Almacenamiento del objeto
myQNAPcloud Object sólo proporciona una única clase de Almacenamiento que es más similar a la clase estándar de AWS S3 Almacenamiento. Donde la clase de Almacenamiento se devuelve en cualquier operación, myQNAPcloud Object devolverá la clase estándar de AWS S3 Almacenamiento.
Operaciones en objetos no compatibles en myQNAPcloud Object
| RESTAURAR objeto | myQNAPcloud Object no admite múltiples clases de Almacenamiento y no admite la solicitud POST de restauración de objetos utilizada para restaurar objetos de una clase diferente de Almacenamiento. |
| Seleccionar contenido del objeto | myQNAPcloud Object no admite la operación para filtrar el contenido de un objeto de Amazon S3 basado en una declaración de lenguaje de consulta estructurado simple (SQL). |
| Operaciones por lotes de S3 | myQNAPcloud Object no admite operaciones por lotes de S3 para la gestión de objetos. |
Cumplimiento con myQNAPcloud Object API de S3
Las configuraciones de cumplimiento para cualquier objeto en un bucket con cumplimiento también se pueden cambiar dentro de los límites del cumplimiento en el bucket. Especifique las configuraciones de cumplimiento del objeto con las siguientes etiquetas XML.
| Retención Legal | Un valor booleano "true" o "false" para establecer el estado de retención legal. Cuando un objeto tiene un estado de retención legal de true, el objeto no puede ser eliminado independientemente del período de retención. |
| Tiempo de Retención | Un tiempo ISO que da un nuevo tiempo de retención para el objeto en el cual el objeto no puede ser eliminado antes de este tiempo. Tenga en cuenta que el nuevo tiempo de retención debe ser posterior al período de retención dado por la política del bucket o se devolverá un error. |
El siguiente es un ejemplo de cómo establecer el cumplimiento en un objeto:
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object?complianceHTTP/1.1
<ObjectComplianceConfiguration>
<ConditionalHold>false</ConditionalHold>
<RetentionTime>2018-03-13T10:45:00Z</RetentionTime>
</ObjectComplianceConfiguration>Las configuraciones de cumplimiento para cualquier objeto específico también se pueden recuperar usando la cadena de consulta "?compliance". Además de las configuraciones de cumplimiento del objeto mencionadas anteriormente, la consulta devuelve el hash SHA256 calculado para el objeto, que se puede usar para determinar que el objeto no ha sido modificado. Tenga en cuenta que el valor SHA256 solo está disponible para objetos que se cargan como un solo objeto y no está disponible para objetos multipartes o compuestos.
El siguiente es un ejemplo de cómo obtener el cumplimiento en un objeto:
GET http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object?complianceHTTP/1.1Cuerpo de la respuesta:
<ObjectComplianceConfiguration xml ns="http://s3.amazonaws.com/doc/2006-03-01/">
<RetentionTime>2016-10-31T15:08:05Z</RetentionTime>
<ConditionalHold>false</ConditionalHold>
<LegalHold>false</LegalHold>
<SHA256>14b4be3894e92166b508007b6c2e4fb6e88d3d0ad652c76475089a50ebe6e33b</SHA256>
</ObjectComplianceConfiguration>Las configuraciones de cumplimiento del objeto también aparecen en las listas de buckets cuando el bucket tiene el cumplimiento habilitado.
Bloqueo de objetos con myQNAPcloud Object API de S3
Puede agregar o actualizar las configuraciones de Bloqueo de objetos para un objeto usando las etiquetas descritas a continuación.
| RetenerHastaFecha | Esto define el tiempo de retención para un objeto. El objeto no puede ser eliminado antes de este tiempo. Tenga en cuenta que el tiempo de retención debe estar en el futuro. |
| LegalHold | Esto debe ser ON o OFF, sin distinción de mayúsculas o minúsculas. |
El siguiente es un ejemplo de configuración del bloqueo de objetos en un objeto:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/beta_vpn.png?retention&versionId= 001617181245457483475-4ylsTbqqvP
<Retention>
<Mode>compliance</Mode>
<RetainUntilDate>2021-04-06T09:00:45Z</RetainUntilDate>
</Retention>El siguiente es un ejemplo de configuración de retención legal para un objeto:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/beta_vpn.png?legal-hold&versionId=001617181245457483475-4ylsTbqqvP
<LegalHold>
<Status>ON</Status>
</LegalHold>El siguiente es un ejemplo de configuración del modo de gobernanza para un objeto:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/public/ACL.PNG?retention
<Retention>
<Mode>governance</Mode>
<RetainUntilDate>2021-05-20T09:00:45Z</RetainUntilDate>
</Retention>El encabezado “x-amz-bypass-governance-retention =true” debe incluirse siempre que desee anular la configuración de gobernanza para un objeto.
URLs de servicio para las Regiones de myQNAPcloud Object Almacenamiento
Las URLs de servicio de myQNAPcloud para las diferentes regiones de myQNAPcloud Object Almacenamiento son:
Américas
| Región | URL de servicio |
|---|---|
| US East 1 (N. Virginia) | s3 .us-east-1.myqnapcloud.io |
| US Central 1 (Texas) | s3.us-central-1. myqnapcloud.io |
| US West 1 (Oregon) | s3.us-west-1. myqnapcloud.io |
| CA Central 1 (Toronto) | s3.ca-central-1. myqnapcloud.io |
EMEA
| EU Central 1 (Ámsterdam) | s3.eu-central-1. myqnapcloud.io |
| EU Central 2 (Fráncfort) | s3.eu-central-2. myqnapcloud.io |
| UE Oeste 1 (Londres) | s3.eu-west-1. myqnapcloud.io |
| UE Oeste 2 (París) | s3.eu-west-2. myqnapcloud.io |
| UE Oeste 3 (Londres) | s3.eu-west-3. myqnapcloud.io |
| UE Sur 1 (Milán) | s3.eu-south-1. myqnapcloud.io |
APAC
| AP Noreste 1 (Tokio) | s3.ap-northeast-1. myqnapcloud.io |
| AP Noreste 2 (Osaka) | s3.ap-northeast-2. myqnapcloud.io |
| AP Sureste 1 (Singapur) | s3.ap-southeast-1. myqnapcloud.io |
| AP Sureste 2 (Sídney) | s3.ap-southeast-2. myqnapcloud.io |
La consola de gestión de myQNAPcloud Object se puede acceder a través del portal myQNAPcloud.
Si está buscando la URL de servicio correcta para usar con su aplicación de Almacenamiento de terceros, debe elegir la que coincida con la ubicación de su bucket.
Al trabajar con aplicaciones de Almacenamiento de terceros, debe tener en cuenta que estas aplicaciones tienen diferentes métodos para manejar las URLs de servicio de la región de Almacenamiento. Estos métodos incluyen:
- Aplicaciones que le permiten ingresar explícitamente la URL del servicio. Estas aplicaciones son las más flexibles porque puede configurar fácilmente nuevas URLs de servicio a medida que estén disponibles.
- Aplicaciones que solo le permiten elegir de una lista predefinida de regiones de Almacenamiento. Estas aplicaciones son las menos flexibles porque, si un proveedor de Almacenamiento implementa una nueva región, debe esperar una actualización de la aplicación para acceder a la nueva región. Si su aplicación de Almacenamiento no admite todas las regiones de myQNAPcloud Object Almacenamiento en sus listas de regiones predefinidas, contacte al proveedor de la aplicación (no a QNAP) para solicitarles soporte.
- Aplicaciones que solo le permiten ingresar su conjunto de claves API y luego ofrecen todos los Buckets en su cuenta. Estas aplicaciones proporcionan flexibilidad pero requieren algunas redirecciones automáticas para funcionar a nivel HTTP.
Replicación de objetos con la API S3 de myQNAPcloud Object
GET Object Tagging
myQNAPcloud Object admite la funcionalidad para obtener el conjunto de etiquetas de un objeto cuando el objeto:
- No tiene etiquetas
- Tiene etiquetas
Cuando el objeto no tiene etiquetas
GET https://s3.myqnapcloud.io/my_bucket/Test-object1.txt?taggingCuerpo de la respuesta:
<?xml version="1.0" encoding="UTF-8"?>
<Tagging>
<TagSet></TagSet>
</Tagging>Estado 200 OKCuando el objeto tiene etiquetas
GET https://s3.myqnapcloud.io/my_bucket/Test-object2.pdf?taggingCuerpo de la respuesta:
<!--?xml version="1.0" encoding="UTF-8"?-->
<Tagging>
<TagSet>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>PUT Object Tagging
myQNAPcloud Object admite la funcionalidad para:
- Agregar el valor de la etiqueta de un objeto existente en un bucket
- Anexar el valor de la etiqueta de un objeto existente en un bucket
Agregar el Valor de la Etiqueta de un Objeto Existente en un Bucket
PUT https://s3.myqnapcloud.io/my_bucket/Test-object3.pdf?tagging
Content-Type: text/xmlCuerpo de la respuesta:
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>tag1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>Anexar el Valor de la Etiqueta de un Objeto Existente en un Bucket
En este ejemplo, un objeto existente ya tiene el valor de la etiqueta "key5" – "value5", puedes anexar nuevos pares de etiquetas junto con el par existente.
PUT https://s3.myqnapcloud.io/my_bucket/Test-object4.jpg?tagging
Content-Type: text/xmlCuerpo de la respuesta:
<Tagging xmlns="http://s3.myqnapcloud.io/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>key5</Key>
<Value>value5</Value>
</Tag>
<Tag>
<Key>key6</Key>
<Value>value6</Value>
</Tag>
</TagSet>
</Tagging>Estado 200 OKPara agregar etiquetas de cualquier otra versión, utiliza el parámetro de consulta versionId.
ELIMINAR Etiquetado de Objetos
Esto elimina todo el conjunto de etiquetas del objeto especificado.
DELETE https://s3.myqnapcloud.io/my_bucket/Test-object5.pdf?taggingCuerpo de la respuesta:
<empty>Estado 204 Sin ContenidoPara eliminar etiquetas de cualquier otra versión, utiliza el parámetro de consulta versionId.
Etiquetado de Objetos con la API de myQNAPcloud Object
Obtener Etiquetado de Objetos
myQNAPcloud Object admite la funcionalidad para obtener el conjunto de etiquetas de un objeto cuando el objeto:
- No tiene etiquetas
- Tiene etiquetas
Cuando el objeto no tiene etiquetas
GET
https://s3.myqnapcloud.io/my_bucket/Test-object1.txt?taggingCuerpo de la respuesta:
<?xml version="1.0" encoding="UTF-8"?>
<Tagging>
<TagSet></TagSet>
</Tagging>Estado 200 OKCuando el objeto tiene etiquetas
GET
https://s3.myqnapcloud.io/my_bucket/Test-object2.pdf?taggingCuerpo de la respuesta:
<!--?xml version="1.0" encoding="UTF-8"?-->
<Tagging>
<TagSet>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>PUT Etiquetado de Objeto
myQNAPcloud Object admite funcionalidad para:
- Añadir el valor de la etiqueta de un objeto existente en un bucket
- Agregar el valor de la etiqueta de un objeto existente en un bucket
Añadir el valor de la etiqueta de un objeto existente en un bucket
PUT
https://s3.myqnapcloud.io/my_bucket/Test-object3.pdf?tagging
Content-Type: text/xmlCuerpo de la respuesta:
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>tag1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>Agregando el valor de la etiqueta de un objeto existente en un bucket
En este ejemplo, un objeto existente ya tiene el valor de la etiqueta de “key5” –“value5”, puedes agregar un nuevo par de etiquetas junto con el par existente.
PUT
https://s3.myqnapcloud.io/my_bucket/Test-object4.jpg?tagging
Content-Type: text/xmlCuerpo de la respuesta:
<Tagging xmlns="http://s3.myqnapcloud.io/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>key5</Key>
<Value>value5</Value>
</Tag>
<Tag>
<Key>key6</Key>
<Value>value6</Value>
</Tag>
</TagSet>
</Tagging>Estado 200 OKPara enviar etiquetas de cualquier otra versión, use el parámetro de consulta versionId.
ELIMINAR Etiquetado de Objetos
Esto elimina todo el conjunto de etiquetas del objeto especificado.
DELETE
https://s3.myqnapcloud.io/my_bucket/Test-object5.pdf?taggingCuerpo de la respuesta:
<empty>Estado 204 Sin ContenidoPara eliminar etiquetas de cualquier otra versión, use el parámetro de consulta versionId.
Lectura adicional
Dada su compatibilidad con AWS S3, la documentación oficial de AWS para S3 sirve como un recurso complementario al trabajar con myQNAPcloud Object. Consulte la Referencia de la API del Servicio Simple de Almacenamiento de Amazon para obtener detalles sobre la versión de la API 2006-03-01:
Referencia de la API del Servicio Simple de Almacenamiento de Amazon