Configuración de reglas de vuelta a la fuente de duplicación
Funciones
Esta operación configura las reglas de vuelta a la fuente de duplicación para un bucket especificado. Esta API es idempotente. Si la misma regla ya existe en el bucket, se devuelve un mensaje de éxito con el código de estado de 200. De lo contrario, se devuelve el código de estado 201.
Sintaxis de solicitud
PUT /?mirrorBackToSource HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Authorization: authorization Content-Type: application/json Content-Length: length Date: date policy json body
Parámetros de solicitud
Esta solicitud no contiene parámetros de mensaje.
Encabezados de solicitud
Esta solicitud utiliza encabezados comunes. Para obtener más información, consulte Tabla 3.
Elementos de solicitud
Elemento |
Descripción |
Obligatorio |
---|---|---|
rules |
Número de reglas. Tipo: container Rango de valores: tamaño de matriz que varía de 1 a 10
NOTA:
Para el mismo bucket, los prefijos de diferentes reglas no pueden contener entre sí ni tener caracteres iniciales duplicados. Se recomienda la misma delegación. |
Sí |
Parámetro |
Descripción |
Obligatorio |
---|---|---|
id |
ID de la regla. ID único de una regla de vuelta a la fuente configurada para el bucket actual. Tipo: string Rango de valores: 1 a 256. El valor debe estar dentro del rango de ^[a-zA-Z0-9_-]{1, 256}$. |
Sí |
condition |
Condición para activar la vuelta a la fuente. Tipo: container |
Sí |
httpErrorCodeReturnedEquals |
Código de error que activa la función vuelta a la fuente. Cuando se devuelve este error para una solicitud de descarga, se activa la función de la vuelta a la fuente. Tipo: integer Rango de valores: 404 |
Sí |
objectKeyPrefixEquals |
Prefijo del nombre del objeto que activa la función vuelta a la fuente. La función de la vuelta a la fuente solo se realiza cuando el prefijo de nombre de objeto especificado está contenido en la solicitud. Si este parámetro se deja en blanco, todos los objetos se coinciden de forma predeterminada. Para el mismo bucket, los prefijos de diferentes reglas no pueden contener entre sí ni tener caracteres iniciales duplicados. Tipo: string Valor válido: una string de 0 a 1023 caracteres |
No |
redirect |
Principales parámetros de vuelta a la fuente. Tipo: container |
Sí |
agency |
Nombre de la delegación con una delegación, el cliente puede conceder a OBS permisos para consultar si existe un objeto especificado en el bucket y cargar objetos en el bucket. Tipo: string |
Sí |
publicSource |
Configuración del sitio de origen al que se puede acceder públicamente. Este parámetro es obligatorio cuando el sitio de origen es un recurso público accesible. Tipo: container |
No |
sourceEndpoint |
Dirección del sitio de origen a la que se puede acceder públicamente. Tipo: container |
No |
master |
Dirección de origen principal. Si el origen es un bucket al que se puede acceder a través de la red HTTP, la dirección es el nombre de dominio del bucket. Si el origen es un bucket privado proporcionado por otros proveedores en la nube, la dirección es una dirección de nombre de dominio de región. Tipo: array Valor válido: una única dirección de sitio de origen tiene el formato https|http://xxx.yyy.zzz y contiene entre 10 y 255 caracteres.
NOTA:
La dirección del sitio de origen principal se usa preferentemente durante el proceso de retorno al origen. Si se configuran varias direcciones primarias, se accede a todas las direcciones primarias en modo de sondeo. Si se configuran dos o más direcciones primarias, cuando falla la primera solicitud a la dirección primaria y se cumplen las condiciones de reintento, la solicitud volverá a intentar otra dirección primaria. Se debe configurar al menos una dirección principal. Se puede configurar un máximo de cinco direcciones primarias. |
No |
slave |
Dirección del sitio de origen secundario. Si el origen es un bucket al que se puede acceder a través de la red HTTP, la dirección es el nombre de dominio del bucket. Si el origen es un bucket privado proporcionado por otros proveedores en la nube, la dirección es una dirección de nombre de dominio de región. Tipo: array Valor válido: una única dirección de sitio de origen tiene el formato https|http://xxx.yyy.zzz y contiene entre 10 y 255 caracteres.
NOTA:
Una solicitud de vuelta a la fuente volverá a intentar la dirección secundaria del sitio de origen cuando la dirección principal del sitio de origen no esté disponible. Se puede configurar un máximo de cinco direcciones secundarias. |
No |
retryConditions |
Condición para cambiar la dirección del sitio de origen. Tipo: array Rango de valores: códigos de error 4XX, 5XX, 400-499 y 500-599
NOTA:
Los códigos de error que comienzan con 4XX y 4 no se pueden configurar juntos. Los códigos de error que comienzan con 5XX y 5 no se pueden configurar juntos. Se puede configurar un máximo de 20 códigos de error. |
No |
passQueryString |
Indica si se debe llevar la string de caracteres de solicitud. Si el valor es true, el valor queryString de la solicitud OBS se pasa al sitio de origen. De lo contrario, el valor queryString no se pasará al sitio de origen. El valor predeterminado es false. El valor false indica que se omite el parámetro. Tipo: boolean Rango de valores: false o true
NOTA:
Si el valor es true pero la consulta contiene información de firma, elimine la información de firma y pase los parámetros restantes. |
Sí |
mirrorFollowRedirect |
Indica si se deben obtener recursos después de la solicitud de redirección 3xx desde el sitio de origen redirigido. Si el valor es true, obtenga recursos después de la solicitud de redirección 3xx desde el sitio de origen redirigido. De lo contrario, OBS pasa de forma transparente la respuesta de 3XX y no obtiene recursos. El valor predeterminado es false. El valor false indica que se omite el parámetro. Tipo: boolean Rango de valores: false o true |
Sí |
mirrorHttpHeader |
Regla de transferencia del encabezado HTTP Tipo: container |
No |
passAll |
Indica si se deben pasar todos los encabezados HTTP a través del sitio de origen. Los siguientes tipos de encabezado HTTP no admiten el paso a través: 1. Encabezados que comienzan con los siguientes prefijos: x-obs- x-amz- 2. Todos los encabezados HTTP estándar, por ejemplo: Content-Length Autorización Fecha passAll y pass son mutuamente excluyentes. Tipo de valor: BOOL Rango de valores: false o true |
No |
pass |
Especifica la lista de encabezados HTTP que se van a pasar. Tipo: list Rango de valores: un máximo de 10 listas. La longitud de cada lista varía de 1 a 63 caracteres. La clave solo puede contener letras (tanto mayúsculas como minúsculas), dígitos, guiones (-) y guiones bajos (_). |
No |
remove |
Lista de encabezados HTTP que no se pueden pasar. La operación de eliminación tiene prioridad sobre las operaciones pass y passAll. Tipo: list Rango de valores: un máximo de 10 listas. La longitud de cada lista varía de 1 a 63 caracteres. La clave solo puede contener letras (tanto mayúsculas como minúsculas), dígitos, guiones (-) y guiones bajos (_). |
No |
set |
Configuración de la lista de encabezados HTTP que se van a pasar. La operación establecida tiene una prioridad más alta que las operaciones remove, pass y passAll. Si el encabezado definido por el usuario contiene Referer, redirectWithoutReferer debe establecerse en true. De lo contrario, Referer se sobrescribirá. Tipo: list Rango de valores: un máximo de 10 listas |
No |
key |
Palabra clave del encabezado HTTP que necesita ser pasado a través. Cada clave es única. Tipo: string Rango de valores: una string de 1 a 63 caracteres. Solo se permiten letras (tanto mayúsculas como minúsculas), dígitos, guiones (-) y guiones bajos (_). |
No |
value |
Valor del encabezado HTTP que debe pasarse. Tipo: string Rango de valores: una string de 0 a 2048 caracteres |
No |
replaceKeyWith |
Agrega prefijo o sufijo. Si necesita agregar un prefijo o sufijo al descargar objetos del sitio de origen, establezca este parámetro en prefix${key}suffix. Si no es necesario agregar ningún prefijo o sufijo, establezca este parámetro en ${key}. Tipo: string Rango de valores: prefix${key}suffix ${key} es la palabra clave, prefijo y sufijo son los que se agregarán. Longitud total del prefijo y sufijo. El valor oscila entre 0 y 1023 caracteres. |
No |
replaceKeyPrefixWith |
Cadena de caracteres utilizada para reemplazar el prefijo objectKeyPrefixEquals. Si necesita reemplazar el prefijo de nombre de objeto actual al descargar objetos desde el sitio de origen, modifique este elemento de configuración. Si ambos replaceKeyWith y ReplaceKeyPrefixWith están vacíos, ReplaceKeyPrefixWith entra en vigor. La solicitud no es válida si se especifican ambos parámetros. Tipo: string Rango de valores: una string de 0 a 1023 caracteres |
No |
vpcEndpointURN |
URN del servicio VPC Endpoint. Tipo: string Rango de valores: una string de 0 a 127 caracteres |
No |
redirectWithoutReferer |
Indica si se debe llevar el host original como encabezado de referencia a la dirección de destino para redireccionar. El valor false indica que el host original será transportado, y true indica que el host original no será transportado. Tipo: boolean Valor predeterminado: false |
No |
mirrorAllowHttpMethod |
Si se agrega HEAD para un bucket público, puede usar solicitudes HEAD para recuperar metadatos de objetos, en lugar de objetos, desde el servidor de origen. Tipo: list |
No |
Sintaxis de respuesta
HTTP/1.1 status Server: OBS Date: date Content-Length: length
Encabezados de respuesta
La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.
Elementos de respuesta
Esta respuesta no contiene elementos.
Respuestas de error
No se devuelven respuestas de error especiales. Para obtener más información acerca de las respuestas de error, consulte Tabla 2 y Tabla 3.
Modelo de solicitud
PUT /?mirrorBackToSource HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo= Content-Type: application/json Content-Length: 1049 Date: Tue, 21 Jul 2020 15:38:30 GMT { "rules": [{ "id": "abc123", "condition": { "httpErrorCodeReturnedEquals": "404", "objectKeyPrefixEquals": "video/" }, "redirect": { "agency": "agency", "publicSource": { "sourceEndpoint": { "master":["http://bucket1.xxx.yyy.com", "https://bucket2.xxx.yyy.com"], "slave": ["http://bucket3.xxx.yyy.com", "https://bucket4.xxx.yyy.com"] } }, "retryConditions": ["4XX", "5XX"], "passQueryString": true, "mirrorFollowRedirect": true, "redirectWithoutReferer": true, "mirrorAllowHttpMethod":["HEAD"], "mirrorHttpHeader": { "passAll": false, "pass": ["content-encoding"], "remove": ["content-type"], "set": [{ "key": "helloworld", "value": "2222" }] }, "replaceKeyWith": "prefix${key}suffix", "replaceKeyPrefixWith": "picture/", "vpcEndpointURN": "001" } }] }
Modelo de respuesta
HTTP/1.1 201 Created Server: OBS Date: Tue, 07 Jul 2020 07:29:13 GMT Content-Length: 0