- カテゴリ:
GET_PRESIGNED_URL¶
ステージ名と相対ファイルパスを入力として使用して、ステージ上のファイルに事前署名付き URL を生成します。
次の方法のいずれかを使用して、ステージ内のファイルにアクセスします。
ウェブブラウザーで直接、事前署名済み URL に移動します。
Snowsightで事前署名済み URL を取得します。結果テーブルで事前署名済み URL をクリックします。
リクエストで事前署名済み URL をファイルサポートの REST API に送信します。
注釈
Microsoft Azureクラウドストレージを参照する外部ステージのファイルに対してこの関数を呼び出す場合: この関数は、ストレージ統合を使用してBlobオブジェクトを保存するAzureコンテナーにアクセスしたときに のみ、出力を返します。生成した共有アクセス署名(SAS)トークンを使用してコンテナーにアクセスすると、関数のクエリに失敗します。
GET_PRESIGNED_URL 関数では、ユーザー委任 SAS トークンを作成するためにAzure Active Directory認証が必要です。この目的のために、ストレージ統合オブジェクトは、Azureクラウドストレージ用に生成されたサービスプリンシパルを保存します。Snowflakeサービスプリンシパルには、 Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey 権限(または アクション)を含むロールが付与されます。Storage Blob Data Reader と Storage Blob Data Contributor の両方のロールにこの権限が含まれています。この権限の詳細については、 Microsoftドキュメント をご参照ください。
Azureコンテナーへのアクセスの詳細については、 Configure an Azure container for loading data をご参照ください。
注釈
Microsoft Fabric OneLakeステージの場合、事前署名付きURLsには、Microsoft Fabricのユーザー委任キー制約があるため、最大有効期限は60分(3600秒)です。より長い有効期限を指定すると、関数はエラーを返します。
構文¶
引数¶
stage_nameファイルが保存される内部ステージまたは外部ステージの名前。
注釈
ステージ名にスペースまたは特殊文字が含まれている場合は、一重引用符で囲む必要があります(例:
"my stage"という名前のステージの場合は'@"my stage"')。relative_file_pathステージ上の場所を基準にしたファイルのパスとファイル名。
expiration_time短期アクセストークンの有効期限が切れるまでの時間(秒単位)。
デフォルト値:
3600(60分)。最大値:ステージがAWS IAMロール(
AWS_ROLE)を使用してS3バケットにセキュアに接続する場合、最大有効期限は3600(60分間)です。Microsoft Fabric OneLakeステージの場合、最大有効期限は
3600(60分間)です。それ以外の場合、最大有効期限は604800(7日間)です。
戻り値¶
ステージングされたファイルの事前署名済み URL。
注釈
この SQL 関数は、指定したファイルパスに対して、たとえそのファイルがステージ上に存在しなくても、事前署名付きの URL を生成します。生成された URL が期待したファイルを返すことを確認するには、 URL をウェブブラウザーで開きます。ファイルが存在しない場合、ブラウザーは NoSuchKey エラーを XML 形式で返します。
使用上の注意¶
サーバー側の暗号化は、内部ステージまたは外部ステージで必要です。詳細については、 CREATE STAGE をご参照ください。
この SQL 関数は、ステージに対する次の権限を持つすべてのロールの値を返します。
- 外部ステージ:
USAGE
- 内部ステージ:
READ
内部ステージからダウンロードしたファイルが破損している場合は、ステージに
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')が設定されていることをステージの作成者で確認してください。
例¶
関数のクエリ¶
画像ファイルのメタデータのロードおよび事前署名付き URL の取得¶
クラウドストレージサービスの API を使用して、画像から抽出されたメタデータを含む JSON ドキュメントのリストを生成します。
たとえば、1つのビットマップイメージファイルの JSON ドキュメントが次のようになっているとします。
画像メタデータのテーブルを作成し、メタデータをテーブルにロードして、画像の事前署名済み URL を生成します。