
以下を使用してサービスを作成しました:
storage.Client(プロジェクト='プロジェクト名'、資格情報=資格情報)
https://googleapis.dev/python/storage/latest/client.html
また、ユーザーの Google Cloud バケット内のファイルをアップロード、削除、一覧表示できます。ファイルをサーバーにダウンロードするオプションは見たことがありますが、ダウンロード可能なリンクを取得するオプションはありますか?
答え1
次の文字列の値を置き換えると、ダウンロード可能なリンクを取得できます。
https://storage.googleapis.com/{bucket.name}/{blob.name}
リクエストを行うための権限や時間を制限する必要がある場合は、署名付きURLを生成する
署名付き URL は、リクエストを行うための権限と時間が制限されている URL です。署名付き URL にはクエリ文字列に認証情報が含まれており、資格情報のないユーザーがリソースに対して特定のアクションを実行できます。署名付き URL を生成するときは、署名付き URL が行うリクエストを行うのに十分な権限を持つユーザーまたはサービス アカウントを指定します。署名付き URL を生成すると、その URL を所有するすべてのユーザーが、指定された期間内に、署名付き URL を使用してオブジェクトの読み取りなどの指定されたアクションを実行できます。
答え2
アクセストークンは時間制限(約1時間)があるため、URLに署名するためにアクセストークンを使用することはできません。URLに署名するために秘密鍵ファイルを使用する代わりに、IAMのSignBlob機能を使用することもできます。これは、 次の“gsutil”
コマンドで 使用できます。”gsutil signurl -u --”
ドキュメンテーションこの方法では、署名されたURLは、前述の最大7日間ではなく、12時間しか有効ではないことに注意してください。ドキュメンテーション
signBlob サービスは、使用する秘密キーを定期的にローテーションします。生成された署名付き URL は少なくとも 12 時間使用できますが、有効期限が 12 時間を超える場合は、設定した有効期限より前に機能しなくなる可能性があります。このため、signBlob から生成された署名付き URL は、リソースへの短時間のアクセスに最適です。