非構造化データサポート用の REST API¶
このトピックでは、ステージングされたファイルへのアクセスに使用される REST API について説明します。
このトピックの内容:
GET /api/files/
¶
内部ステージまたは外部ステージからデータファイルを取得(ダウンロード)します。
認証¶
カスタムクライアントの OAuth を使用して、 REST API エンドポイントを認証します。セキュリティ統合を作成し(CREATE SECURITY INTEGRATION を使用)、 OAuth をサポートする HTTP クライアント(cURL など)によってユーザーを認証ページにリダイレクトし、 REST API エンドポイントにアクセスするためのアクセストークンを生成できるようにします。カスタムクライアント用に OAuth を構成する方法については、 カスタムクライアント用のSnowflake OAuth の構成 をご参照ください。
使用上の注意¶
GET リクエストで、ステージングされたファイルのスコープ URL またはファイル URL を送信します。
BUILD_SCOPED_FILE_URL SQL 関数を呼び出して、スコープ URL を生成します。
BUILD_STAGE_FILE_URL SQL 関数を呼び出して、ファイル URL を生成します。あるいは、可能な場合は、ステージのディレクトリテーブルをクエリします。
OAuth またはキーペア認証を使用して、Snowflake SQL API を介してSnowflakeを認証します。手順については、 サーバーへの認証 をご参照ください。
ファイルにアクセスするための認証は、スコープ URL またはファイル URL が GET リクエストで送信されるかどうかによって異なります。
- スコープ URL:
スコープ URL を生成したユーザーのみが、 URL を使用して参照ファイルにアクセスできます。
- ファイル URL:
ステージに対して十分な権限を持つすべてのロールがファイルにアクセスできます。
外部ステージ: USAGE
内部ステージ: READ
URL (スコープ URL またはファイル URL のいずれか)を REST API に送信する HTTP クライアントは、リダイレクトを許可するように構成する必要があります。
内部ステージからダウンロードしたファイルが破損している場合は、ステージに
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
が設定されていることをステージの作成者で確認してください。
リクエストヘッダー¶
次のリクエストヘッダーは、すべての操作に適用されます。
ヘッダー |
説明 |
---|---|
|
これを 詳細については、 OAuth を使用したサーバーへの認証 をご参照ください。 例:
|
|
これを |
|
これをアプリケーションの名前とバージョンに設定します(例: |
|
これを |
例¶
次のPythonの例では、クライアント myApplication
バージョン1.0に対して HTTP リクエストを発行します。
import requests
response = requests.get(url,
headers={
"User-Agent": "reg-tests",
"Accept": "*/*",
"X-Snowflake-Authorization-Token-Type": "OAUTH",
"Authorization": """Bearer {}""".format(token)
},
allow_redirects=True)
print(response.status_code)
print(response.content)