メインコンテンツまでスキップ

アップロード・ダウンロード用の署名付き URL 取得 API

概要​

カスタムストレージに保存されたファイルを安全にアップロード・ダウンロードするための API です。アクセストークン取得 APIで取得した Bearer トークンで認証し、15 分間有効な署名付き URL を発行します。取得した URL に対し、アップロードの場合は PUT、ダウンロードの場合は GET で直接ファイルの送受信を行います。

事前準備​

1. カスタムストレージの有効化​

本 API はカスタムストレージが有効な場合にのみ利用できます。事前にカスタムストレージが有効化されているかご確認ください。

2. アクセストークンの取得​

アクセストークン取得 APIを呼び出し、access_token を取得してください。本 API ではこのトークンを Bearer 認証に使用します。

3. IP アドレス制限(任意)​

必要に応じてIP アドレス制限を設定できます。設定している場合は、許可された送信元 IP からのみリクエスト可能です。

使用手順​

1. 署名付き URL の取得​

Bearer トークンと、action・name(アップロード時は contentType・overwrite も)を指定して本 API を呼び出し、レスポンスの url・method・headers を取得します。

ヒント

実装方法の詳細については、OpenAPI リファレンス(auth-getstorageurl)を参照してください。

2. 取得したレスポンスの利用(PUT・GET)​

署名付き URL 取得 API のレスポンス(url・method・headers)を使って、後続リクエストを行う例です。

アップロード(curl)

上書き許可(overwrite: true で URL 取得した場合。headers に x-goog-if-generation-match が含まれる):

curl -i \
-X PUT \
-H "Content-Type: text/csv" \
-H "x-goog-if-generation-match: 0" \
--upload-file "<ファイルのパス>/upload-overwrite.csv" \
"<レスポンスの url>"

上書き不許可(overwrite: false または 未指定 で URL 取得した場合。headers は Content-Type のみ):

curl -i \
-X PUT \
-H "Content-Type: text/csv" \
--upload-file "<ファイルのパス>/upload-no-overwrite.csv" \
"<レスポンスの url>"
ダウンロード(curl)

ダウンロード(GET)

curl -i -X GET "<レスポンスの url>"
  • レスポンスの method が GET の場合に使用。url に対して GET でリクエストするとファイルを取得できます。

署名付き URL へのリクエストで発生しうるエラー​

取得した署名付き URL に対して PUT/GET を送信した際に、ストレージ側から返される可能性のあるエラーです。

HTTP ステータス値説明備考
400Bad Request署名付き URL の有効期限切れ。例: The provided token has expired.
400Bad Request署名時に含まれたヘッダーがリクエストに含まれていない、または誤っている場合。(x-goog-if-generation-match 等をレスポンスどおりに付けていない場合)例: Your request has a malformed header. Header was included in signedheaders, but not in the request.
404Not Foundダウンロード対象ファイルが存在しない場合例: The specified key does not exist.
412Precondition Failed同名ファイルが存在し、上書きが許可されていない場合。例: At least one of the pre-conditions you specified did not hold.

注意事項​

  • ファイル範囲: テナントに紐づくカスタムストレージのファイルのみアクセス可能です。
  • 署名付き URL 有効期限: 署名付き URL は 15 分間有効です。取得後は速やかに PUT/GET を実行してください。
警告

アクセストークン有効期限: アクセストークンの有効期限を過ぎた場合は、アクセストークン取得 APIで再取得してください。

備考

ファイル一覧の取得方法についてはファイル一覧取得 APIを参照してください。