
Eu criei um serviço usando:
storage.Client(projeto='nome_do_projeto', credenciais=credenciais)
https://googleapis.dev/python/storage/latest/client.html
E posso fazer upload, excluir e listar os arquivos em um bucket do Google Cloud de usuários. Vi uma opção para baixar o arquivo para um servidor, mas existe alguma opção para obter um link para download?
Responder1
Você pode obter o link para download substituindo os valores da seguinte string:
https://storage.googleapis.com/{bucket.name}/{blob.name}
Se precisar limitar as permissões ou o tempo para fazer a solicitação, você podegerar um URL assinado
Um URL assinado é um URL que fornece permissão e tempo limitados para fazer uma solicitação. URLs assinados contêm informações de autenticação em sua string de consulta, permitindo que usuários sem credenciais executem ações específicas em um recurso. Ao gerar um URL assinado, você especifica um usuário ou conta de serviço que deve ter permissão suficiente para fazer a solicitação que o URL assinado fará. Depois de gerar um URL assinado, qualquer pessoa que o possua poderá usá-lo para executar ações específicas, como ler um objeto, dentro de um período de tempo especificado.
Responder2
Você não pode usar um token de acesso para assinar uma URL porque os tokens de acesso são limitados no tempo (cerca de uma hora). Uma alternativa ao uso do arquivo de chave privada para assinar um URL é usar a funcionalidade SignBlob do IAM. Você pode usá-lo “gsutil”
pelo comando ”gsutil signurl -u --”
mencionado emdocumentação. Observe que com este método, o URL assinado é válido apenas por 12 horas, em comparação com o máximo de 7 dias mencionado nodocumentação
O serviço signBlob alterna regularmente a chave privada que usa. Os URLs assinados gerados podem ser usados por pelo menos 12 horas, mas podem parar de funcionar antes do prazo de expiração definido se o prazo de expiração for superior a 12 horas. Diante disso, URLs assinados gerados a partir de signBlob são melhor usados para acesso de curta duração aos recursos.