Configuração de regras de volta à fonte do espelhamento
Funções
Essa operação configura as regras de volta à fonte do espelhamento para um bucket especificado. Esta API é idempotente. Se a mesma regra já existir no bucket, uma mensagem de sucesso será retornada com o código de status 200. Caso contrário, o código de status 201 é retornado.
Sintaxe de solicitação
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 solicitação
Esta solicitação não contém parâmetros de mensagem.
Cabeçalhos de solicitação
Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.
Elementos de solicitação
Elemento |
Descrição |
Obrigatório |
---|---|---|
rules |
Número de regras. Tipo: container Intervalo de valor: tamanho da matriz que varia de 1 a 10
NOTA:
Para o mesmo bucket, os prefixos de regras diferentes não podem conter uns aos outros ou ter caracteres iniciais duplicados. Recomenda-se a mesma agência. |
Sim |
Parâmetro |
Descrição |
Obrigatório |
---|---|---|
id |
ID da regra. ID exclusivo de uma regra de retorno à origem configurada para o bucket atual. Tipo: string Intervalo de valor: 1 ao 256. O valor deve estar dentro do intervalo de ^[a-zA-Z0-9_-]{1, 256}$. |
Sim |
condition |
Condição para disparar volta à fonte. Tipo: container |
Sim |
httpErrorCodeReturnedEquals |
Código de erro que dispara a função volta à fonte. Quando esse erro é retornado para uma solicitação de download, a função volta à fonte é acionada. Tipo: positive integer Intervalo de valor: 404 |
Sim |
objectKeyPrefixEquals |
Prefixo do nome do objeto que aciona a função volta à fonte. Volta à fonte é realizado somente quando o prefixo de nome de objeto especificado está contido na solicitação. Se este parâmetro for deixado em branco, todos os objetos são correspondidos por padrão. Para o mesmo bucket, os prefixos de regras diferentes não podem conter uns aos outros ou ter caracteres iniciais duplicados. Tipo: string Valor válido: uma cadeia de 0 a 1023 caracteres |
Não |
redirect |
Principais parâmetros de volta à fonte. Tipo: container |
Sim |
agency |
Nome da agência com uma agência, o cliente pode conceder ao OBS as permissões para consultar se um objeto especificado existe no bucket e carregar objetos para o bucket. Tipo: string |
Sim |
publicSource |
Configuração do site de origem que pode ser acessado publicamente. Este parâmetro é obrigatório quando o site de origem é um recurso acessível ao público. Tipo: container |
Não |
sourceEndpoint |
Endereço do site de origem que pode ser acessado publicamente. Tipo: container |
Não |
master |
Endereço de origem primária. Se a origem for um bucket que pode ser acessado pela rede de HTTP, o endereço será o nome de domínio do bucket. Se a origem for um bucket privado fornecido por outros fornecedores de nuvem, o endereço é um endereço de nome de domínio de região. Tipo: array Valor válido: Um único endereço de site de origem está no formato de https|http://xxx.yyy.zzz, contendo de 10 a 255 caracteres.
NOTA:
A fonte primária site endereço é preferencialmente utilizado durante o volta à fonte processo. Se vários endereços primários estiverem configurados, todos os endereços primários serão acessados no modo de polling. Se dois ou mais endereços primários estiverem configurados, quando a primeira solicitação para o endereço primário falhar e as condições de repetição forem atendidas, a solicitação tentará novamente outro endereço primário. Pelo menos um endereço principal deve ser configurado. Um máximo de cinco endereços primários podem ser configurados. |
Não |
slave |
Endereço do site de origem secundária. Se a origem for um bucket que pode ser acessado pela rede de HTTP, o endereço será o nome de domínio do bucket. Se a origem for um bucket privado fornecido por outros fornecedores de nuvem, o endereço é um endereço de nome de domínio de região. Tipo: array Valor válido: Um único endereço de site de origem está no formato de https|http://xxx.yyy.zzz, contendo de 10 a 255 caracteres.
NOTA:
Uma solicitação de retorno à origem repetirá o endereço do site de origem secundária quando o endereço do site de origem primária não estiver disponível. Um máximo de cinco endereços secundários podem ser configurados. |
Não |
retryConditions |
Condição para mudar o endereço do site de origem. Tipo: array Intervalo de valor: Códigos de erro 4XX, 5XX, 400-499 e 500-599
NOTA:
Os códigos de erro que começam com 4XX e 4 não podem ser configurados juntos. Os códigos de erro que começam com 5XX e 5 não podem ser configurados juntos. Um máximo de 20 códigos de erro podem ser configurados. |
Não |
passQueryString |
Indica se deve transportar a seqüência de caracteres de solicitação. Se o valor for true, o valor queryString na solicitação OBS é passado para o site de origem. Caso contrário, o valor de queryString não será passado para o site de origem. O valor padrão é false. O valor false indica que o parâmetro é ignorado. Tipo: BOOL Intervalo de valor: false or true
NOTA:
Se o valor for true, mas a consulta contiver informações de assinatura, exclua as informações de assinatura e passe os parâmetros restantes. |
Sim |
mirrorFollowRedirect |
Indica se deseja obter recursos após a solicitação de redirecionamento 3xx do site de origem redirecionado. Se o valor for true, obtenha recursos seguindo a solicitação de redirecionamento 3xx do site de origem redirecionado. Caso contrário, OBS passa pela resposta 3XX e não obtém recursos. O valor padrão é false. O valor false indica que o parâmetro é ignorado. Tipo: BOOL Intervalo de valor: false ou true |
Sim |
mirrorHttpHeader |
Regra de encaminhamento do cabeçalho de HTTP Tipo: container |
Não |
passAll |
Indica se deve passar todos os cabeçalhos HTTP através do site de origem. Os seguintes tipos de cabeçalho de HTTP não suportam passthrough: 1. Cabeçalhos que começam com os seguintes prefixos: x-obs- x-amz- 2. Todos os cabeçalhos de HTTP padrão, por exemplo: Conteúdo-Comprimento Autorização Data passAll e pass são mutuamente exclusivos. Tipo do valor: BOOL Intervalo de valor: false ou true |
Não |
pass |
Especifica a lista de cabeçalhos de HTTP a serem passados. Tipo: list Intervalo de valor: um máximo de 10 listas. O comprimento de cada lista varia de 1 a 63 caracteres. A tecla pode conter apenas letras (maiúsculas e minúsculas), dígitos, hífens (-) e sublinhados (_). |
Não |
remove |
Lista de cabeçalhos de HTTP que não podem ser passados. A operação remove tem precedência sobre as operações pass e passAll. Tipo: list Intervalo de valor: um máximo de 10 listas. O comprimento de cada lista varia de 1 a 63 caracteres. A tecla pode conter apenas letras (maiúsculas e minúsculas), dígitos, hífens (-) e sublinhados (_). |
Não |
set |
Configuração da lista de cabeçalhos HTTP a serem passados. A operação set tem uma prioridade mais alta do que as operações remove, pass, e passAll. Se o cabeçalho definido pelo usuário contém Referer, redirectWithoutReferer deve ser definido como true. Caso contrário, Referer será sobrescrito. Tipo: container list Intervalo de valor: um máximo de 10 listas |
Não |
key |
Palavra-chave do cabeçalho de HTTP que precisa ser passado. Cada chave é única. Tipo: string Intervalo de valor: uma string de 1 a 63 caracteres. Somente letras (maiúsculas e minúsculas), dígitos, hífens (-) e sublinhados (_) são permitidos. |
Não |
value |
Valor do cabeçalho de HTTP que precisa ser passado. Tipo: string Intervalo de valor: uma string de 0 a 2048 caracteres |
Não |
replaceKeyWith |
Adicionar prefixo ou sufixo. Se você precisar adicionar um prefixo ou sufixo ao baixar objetos do site de origem, defina esse parâmetro como prefix${key}suffix. Se nenhum prefixo ou sufixo precisar ser adicionado, defina este parâmetro como ${key}. Tipo: string Intervalo de valor: prefix${key}suffix ${key} é a palavra-chave, prefixo e sufixo são os que devem ser adicionados. Comprimento total do prefixo e sufixo. O valor varia de 0 a 1023 caracteres. |
Não |
replaceKeyPrefixWith |
Cadeia de caracteres usada para substituir o prefixo objectKeyPrefixEquals. Se você precisar substituir o prefixo do nome do objeto atual ao fazer o download de objetos do site de origem, modifique esse item de configuração. Se ambos replaceKeyWith e ReplaceKeyPrefixWith estiverem vazios, ReplaceKeyPrefixWith entrará em vigor. A solicitação é inválida se ambos os parâmetros forem especificados. Tipo: string Intervalo de valor: uma string de 0 a 1023 caracteres |
Não |
vpcEndpointURN |
URN do serviço VPC Endpoint. Tipo: string Intervalo de valor: uma string de 0 a 127 caracteres |
Não |
redirectWithoutReferer |
Indica se a transportar o host original como o cabeçalho de referência para o endereço de destino para redirecionamento. O valor false indica que o host original será transportado, e true indica que o host original não será transportado. Tipo: BOOL Valor padrão: false |
Não |
mirrorAllowHttpMethod |
Tipo da solicitação de HTTP que você deseja passar, por exemplo, HEAD. Atualmente, apenas HEAD é suportado. Tipo: list |
Não |
Sintaxe de resposta
HTTP/1.1 status Server: OBS Date: date Content-Length: length
Cabeçalhos de resposta
A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.
Elementos de resposta
Esta resposta não envolve elementos.
Respostas de erro
Nenhuma resposta de erro especial é retornada. Para obter detalhes sobre respostas de erro, consulte Tabela 2 e Tabela 3.
Solicitação de exemplo
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" } }] }
Resposta de exemplo
HTTP/1.1 201 Created Server: OBS Date: Tue, 07 Jul 2020 07:29:13 GMT Content-Length: 0