gsutil config para google-cloud-storage

1

Eu estava tentando executar um caso de teste de telemetria no google chrome, que requer que alguns arquivos de teste sejam baixados do google-cloud-storage. Quando executo o caso de teste, recebo o seguinte erro. O erro diz que tenho que configurar a gsutil antes de acessar, mas mesmo depois de configurar a gsutil com as etapas dadas, acabo com o mesmo erro. Existe um arquivo ".boto" criado após a configuração da gsutil. Então, eu não tenho a menor ideia do motivo pelo qual estou recebendo o mesmo erro.

PermissionError: Attempted to access a file from Cloud Storage but you don't have permission. To configure your credentials:
  1. Run "tools/telemetry/third_party/gsutil/gsutil config" and follow its instructions.
  2. If you have a @google.com account, use that account.
  3. For the project-id, just enter 0.

Locals:
  args        : ['cp', 'gs://chrome-partner-telemetry/da1c09dd48dcd2eb76449d97c4fa38460d3a1e8d', '/home/sriram/android/chromeopensource/androidbuild/src/tools/perf/page_sets/tough_video_cases/crowd1080.mp4']
  gsutil      : <subprocess.Popen object at 0x30807d0>
  gsutil_env  : None
  gsutil_path : 'tools/telemetry/third_party/gsutil/gsutil'
  stderr      : 'AccessDeniedException: 403 Forbidden\n'
  stdout      : ''
    
por sriram 16.03.2015 / 11:14

2 respostas

2

A gsutil irá usar o arquivo ~ / .boto. Por padrão, a gsutil irá procurar o arquivo de configuração em /etc/boto.cfg e ~ / .boto.

Se esses arquivos não existirem, eles usarão legacy_credentials.

Você pode alterar todo esse comportamento modificando os parâmetros de ambiente BOTO_PATH e BOTO_CONFIG.

Aqui está a documentação sobre como usar essas variáveis de ambiente.

BOTO_PATH: a gsutil carregará cada arquivo de configuração encontrado no caminho em ordem. Você pode querer usar essa variável de ambiente se quiser compartilhar uma configuração de boto entre os usuários. Um exemplo seria algo assim:

BOTO_PATH=/etc/group/.boto.cfg:/home/user/.boto 

BOTO_CONFIG: Use esta variável para definir a ordem de preferência. Um exemplo seria algo assim:

BOTO_CONFIG=~/testa/.boto:~/testb/.boto . 

Isso colocaria a preferência no arquivo boto do testa. Se não estiver lá, a gsutil carregará o testb boto.

    
por 24.03.2015 / 07:21
1

Sua ferramenta de terceiros não está solicitando um ID de projeto específico:

For the project-id, just enter 0

Eu não conheço essa ferramenta, mas usando o comando do Google Cloud “ gsutil config ” é criado um arquivo /home/<user>/.boto (você pode editar esse arquivo). ser-lhe-á pedido um ID de projecto, bem como um "gcloud auth login" para registar um " gs_oauth2_refresh_token ".

Mesmo se você estiver usando uma ferramenta de terceiros, ela deve ser mais ou menos da mesma maneira que foi criada. Quando o lauching gsutil config dá uma olhada na saída, ele deve dizer onde seu arquivo boto é criado.

Eu criei um para verificar com o Google Cloud “ gsutil config ”:

Boto config file "/home/eric/.boto" created. If you need to use a
proxy to access the Internet please see the instructions in that file.

meu arquivo /.boto:

# This file contains credentials and other configuration information needed
# by the boto library, used by gsutil. You can edit this file (e.g., to add
# credentials) but be careful not to mis-edit any of the variable names (like
# "gs_access_key_id") or remove important markers (like the "[Credentials]" and
# "[Boto]" section delimiters).
#
# This file was created by gsutil version 4.10 at 2015-03-16 19:48:14.

....
gs_oauth2_refresh_token=xxxxxxxxxxxxxxxxxxxxxxxx
....

Sinta-se à vontade para excluir ou atualizar este arquivo, você sempre poderá recriá-lo com o “ gsutil config ” quando necessário.

    
por 16.03.2015 / 20:07