Acesso a OBS
Nome de domínio de OBS
Os dois conceitos a seguir estão relacionados aos nomes de domínio de OBS:
- Endpoint: OBS fornece um endpoint para cada região. Um endpoint é um nome de domínio para acessar o OBS em uma determinada região e é usado para receber solicitações de acesso enviadas dessa região. Para obter uma lista completa dos endpoints do OBS e as regiões correspondentes, consulte Regiões e endpoints.
- Nome de domínio de bucket: Cada bucket em OBS tem um nome de domínio. Um nome de domínio é o endereço da Internet de um bucket e pode ser usado para acessar o bucket pela internet. É normalmente usado em cenários de desenvolvimento de aplicativos em nuvem e compartilhamento de dados.
Um nome de domínio de bucket de OBS está no formato BucketName.Endpoint.
BucketName indica o nome de um bucket e Endpoint indica o nome de domínio de OBS da região onde o bucket está localizado.
Tabela 1 lista o nome de domínio do bucket e outros nomes de domínio de OBS, incluindo seus formatos e protocolos.
Tipo |
Estrutura |
Descrição |
Tipo de protocolo |
---|---|---|---|
Nome de domínio da região |
[Estrutura] Endpoint [Exemplo] obs.cn-north-4.myhuaweicloud.com |
Cada região tem um endpoint, que é o nome de domínio da região. Para obter um mapeamento completo entre regiões e endpoints de OBS, consulte Regiões e endpoints. |
HTTPS HTTP |
Nome de domínio de bucket |
[Estrutura] BucketName.Endpoint [Exemplo] bucketname.obs.cn-north-4.myhuaweicloud.com |
Depois que um bucket é criado, você pode usar o nome de domínio para acessar o bucket. Você pode montar o nome de domínio do bucket colocando o nome do bucket e o ponto de extremidade de serviço de OBS juntos, ou você pode obtê-lo de Visualização de informações de bucket no Console do OBS e no OBS Browser+. |
HTTPS HTTP |
Nome de domínio de objeto |
[Estrutura] BucketName.Endpoint/ObjectName [Exemplo] bucketname.obs.cn-north-4.myhuaweicloud.com/object.txt |
Depois que um objeto é carregado em um bucket, você pode usar o nome de domínio do objeto para acessar o objeto. Você pode montar o nome de domínio do objeto colocando o nome do bucket, o ponto de extremidade do serviço do OBS e o nome do objeto juntos, ou você pode obtê-lo através de Visualização de informações de objetos no Console do OBS ou no OBS Browser+. Como alternativa, você pode chamar a API GetObjectUrl por meio de um SDK para obter o nome de domínio do objeto. |
HTTPS HTTP |
[Estrutura] BucketName.obs-website.Endpoint [Exemplo] bucketname.obs-website.cn-north-4.myhuaweicloud.com |
Um nome de domínio de site estático é um nome de domínio de bucket quando o bucket é configurado para hospedar um site estático. |
HTTPS HTTP |
|
Nomes de domínio que foram licenciados pelo Ministério da Indústria e Tecnologia da Informação (MIIT) da China. |
Você pode vincular um nome de domínio de usuário a um bucket para poder acessar o bucket por meio do nome de domínio de usuário. |
HTTP |
Endpoints
OBS tem um endpoint em cada região.
Geralmente, o endpoint realizado em uma solicitação de acesso ao OBS deve ser o endpoint da região onde reside o recurso solicitado. No entanto, em alguns casos especiais, você pode usar qualquer endpoint.
- Cenários em que o endpoint na solicitação deve ser consistente com o endpoint da região onde residem os recursos solicitados
Ao acessar um bucket ou um objeto, o endpoint na solicitação deve ser o endpoint da região onde o bucket ou objeto reside.
Por exemplo, se o bucket mybucket estiver na região cn-north-4, você poderá listar objetos no bucket enviando uma solicitação mostrada no exemplo a seguir:
A correct example of request and response for listing objects:
[Solicitação]
GET / HTTP/1.1 Host: mybucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
[Resposta]
HTTP/1.1 200 OK x-obs-request-id: 0001EF710C000001536176DA465E4E6G x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYC Content-Type: application/xml Date: Thu, 10 Mar 2016 16:58:12 GMT x-obs-bucket-location: cn-north-4 Content-Length: 259 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListBucketResult xmlns="http://obs.myhuaweicloud.com/doc/2015-06-30/"> <Name>mybucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>object001</Key> <LastModified>2015-07-01T00:32:16.482Z</LastModified> <ETag>"2fa3bcaaec668adc5da177e67a122d7c"</ETag> <Size>12041</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
Se o endpoint na solicitação não for consistente com o endpoint da região solicitada, uma mensagem de erro será retornada indicando que o bucket não existe.
No exemplo anterior, o bucket mybucket está na região cn-north-4. Se você usar o endpoint cn-south-1 (mybucket.obs.cn-south-1.myhuaweicloud.com) para acessar o bucket, o HTTP 404 será retornado, indicando que o bucket não existe. Nesse caso, você pode chamar a API para Obtenção da localização de bucket para obter a ID de região do bucket e reenviar a solicitação.
Um exemplo incorreto de solicitação e resposta para listar objetos:
[Solicitação]
GET / HTTP/1.1 Host: mybucket.obs.cn-south-1.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
[Resposta]
HTTP/1.1 404 NoSuchBucket x-obs-request-id: 0001EF710C000001536176DA465E4E6H x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYL Date: Thu, 10 Mar 2016 08:51:30 GMT Content-Length: 0
- Cenários em que qualquer endpoint pode ser usado em uma solicitação
Para obter a lista de buckets ou as informações de região de um bucket, você pode usar qualquer ponto de extremidade de região nas solicitações de API enviadas, pois essas API pesquisam os buckets solicitados em todas as regiões.
Um exemplo de solicitação e resposta para obter informações de região de um bucket:
Por exemplo, se o bucket mybucket estiver na região cn-north-4 e o endpoint da região cn-south-1 for usado na solicitação, as informações de localização do bucket ainda poderão ser obtidas.
[Solicitação]GET /?location HTTP/1.1 Host: mybucket.obs.cn-south-1.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
[Resposta]HTTP/1.1 200 OK x-obs-request-id: 0001EF710C000001536176DA465E4E6G x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYC Content-Type: application/xml Date: Thu, 10 Mar 2016 16:58:12 GMT Content-Length: length <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Location xmlns="http://obs.myhuaweicloud.com/doc/2015-06-30/">cn-north-4</Location>
Acesso ao OBS pela internet
Acessar OBS em uma rede pública pode gerar tráfego de entrada para operações de gravação (por exemplo, carregar dados para o OBS), bem como tráfego de saída para operações de leitura (por exemplo, baixar dados de OBS). O tráfego de entrada não incorre em taxas, mas o tráfego de saída sim.
Para obter detalhes sobre o preço do tráfego de saída pela Internet, consulte Detalhes de preço do produto.
Se aceder ao OBS através de uma rede pública, pode utilizar uma URL para especificar recursos no OBS. Um URL de OBS é estruturado da seguinte forma:
Protocol://[BukcetName.]Endpoint[:Port][/Object][?Param]
Parâmetro |
Descrição |
Obrigatório ou opcional |
---|---|---|
Protocolo |
Indica o protocolo usado para enviar solicitações, que pode ser de HTTP ou HTTPS. HTTPS é um protocolo que garante acesso seguro aos recursos. O OBS suporta HTTP e HTTPS. |
Obrigatório |
BucketName |
Nome do bucket solicitado, que identifica exclusivamente um bucket no OBS. |
Opcional |
Endpoint |
Nome de domínio (endpoint) da região onde o bucket de OBS está localizado. Para obter detalhes sobre o nome de domínio de OBS de cada região, consulte Regiões e endpoints. |
Obrigatório |
Porta |
Indica a porta habilitada para protocolos usados para enviar solicitações. O valor varia com a implantação do servidor de software. Se nenhum número de porta for especificado, o protocolo usará o valor padrão. Cada protocolo de transmissão tem seu número de porta padrão. No OBS, o número da porta HTTP padrão é 80 e o do HTTPS é 443. |
Opcional |
Objeto |
Caminho do recurso do objeto solicitado. |
Opcional |
Param |
Recurso específico contido por um bucket ou objeto. O valor padrão desse parâmetro indica que o próprio bucket ou objeto é obtido. |
Opcional |
Exemplo: Você tem um bucket chamado mybucket na região CN North-Beijing4 (cn-north-4). O bucket contém um objeto chamado myfolder/myfile.txt. O URL para acessar o objeto pela rede pública é a seguinte:
https://mybucket.obs.cn-north-4.myhuaweicloud.com/myfolder/myfile.txt
Todas as solicitações de API, exceto a de listagem de objetos, devem conter o BucketName. Considerando o desempenho e a confiabilidade da resolução de DNS, o OBS exige que o nome do bucket preceda o Endpoint quando uma solicitação que transporta um nome de bucket for construída para formar um nome de domínio de três níveis, também mencionado como nome de domínio de acesso de hospedagem virtual.
Acesso a OBS pela intranet
O acesso ao OBS através de uma rede privada refere-se ao acesso ao OBS através da rede de comunicação interna entre diferentes serviços da HUAWEI CLOUD. Acessar o OBS através de uma rede privada pode gerar tráfego de entrada para operações de gravação (por exemplo, carregar dados para o OBS), bem como tráfego de saída para operações de leitura (por exemplo, baixar dados do OBS). Nesse caso, nem o tráfego de entrada nem de saída incorre em taxas.
Por exemplo, você pode acessar o OBS de um Elastic Cloud Server (ECS) em uma rede privada. Esse acesso não é suscetível a problemas de qualidade da rede pública e também reduz custos.
O OBS fornece as melhores práticas para configuração. Para obter detalhes, consulte Acesso OBS pela intranet.
Verificação da versão do OBS (OBS 2.0 ou OBS 3.0)
A arquitetura de OBS passou por duas gerações: OBS 2.0 e OBS 3.0. Um bucket recém-criado é armazenado no OBS 3.0 por padrão, e a versão do bucket é o OBS 3.0. No entanto, os buckets criados anteriormente ainda estão no OBS 2.0.
Os recursos e funções básicos de OBS são suportados pelo OBS 3.0 e pelo OBS 2.0. Alguns novos recursos são suportados apenas pelo OBS 3.0, como processamento de imagem e replicação entre regiões.
Você pode verificar a versão do bucket no Console do OBS ou usar a API Head Bucket para verificar se seu bucket está no OBS 2.0 ou no OBS 3.0. Os detalhes estão a seguir:
Método 1: Efetue login no console de OBS e verifique as informações básicas do bucket.
Se Bucket Version for 3.0, o bucket será armazenado no OBS 3.0. Caso contrário, o bucket é armazenado no OBS 2.0.
Método 2: Use a API Head Bucket para verificar a versão do bucket.
Solicitação de exemplo:
1 2 3 4 5 |
HEAD / HTTP/1.1 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:23:25 GMT Authorization: auth string |
Resposta de exemplo:
1 2 3 4 5 6 7 8 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000163D80E4C5F20FDD5BD0085 Content-Type: application/xml x-obs-version: 3.0 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCS8wS9l00ll4oMWmdniV7XmdAvfewrQq Date: WED, 01 Jul 2015 02:23:25 GMT Content-Length: 0 |
Na mensagem de resposta, x-obs-version: 3.0 indica que o bucket está armazenado no OBS 3.0. Se esse cabeçalho não existir ou o valor desse cabeçalho for exibido de outra forma, o bucket será armazenado no OBS 2.0.
Para obter detalhes sobre a API Head Bucket, consulte Obtenção de metadados de bucket.