PRESIGN
Generates the pre-signed URL for a staged file by the stage name and file path you provide. The pre-signed URL enables you to access the file through a web browser or an API request.
When using cURL to interact with non-S3-like storage, remember to include the headers generated by the PRESIGN command for secure file uploads or downloads. For example,
curl -H "<header-generated-by-presign>" -o books.csv <presigned-url>
curl -X PUT -T books.csv -H "<header-generated-by-presign>" <presigned-url>
See also:
- LIST STAGE FILES: Lists files in a stage.
- REMOVE STAGE FILES: Removes files from a stage.
Syntax
PRESIGN [ { DOWNLOAD | UPLOAD }] @<stage_name>/.../<file_name> [ EXPIRE = <expire_in_seconds> ]
Where:
[ { DOWNLOAD | UPLOAD }]
: Specifies that the pre-signed URL is used for download or upload. The default value is DOWNLOAD
.
[ EXPIRE = <expire_in_seconds> ]
: Specifies the length of time (in seconds) after which the pre-signed URL expires. The default value is 3,600 seconds.
Examples
Generating and Using Pre-signed URLs for Download
This example generates the pre-signed URL for downloading the file books.csv
on the stage my-stage
:
PRESIGN @my_stage/books.csv
+--------+---------+---------------------------------------------------------------------------------+
| method | headers | url |
+--------+---------+---------------------------------------------------------------------------------+
| GET | {} | https://example.s3.amazonaws.com/books.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&... |
+--------+---------+---------------------------------------------------------------------------------+
This example functions in the same way as the preceding one:
PRESIGN DOWNLOAD @my_stage/books.csv
To download the file with the pre-signed URL and save it as books.csv
, execute the following command:
curl <presigned-url> -o books.csv
This example generates the pre-signed URL that expires in 7,200 seconds (2 hours):
PRESIGN @my_stage/books.csv EXPIRE = 7200
Generating and Using Pre-signed URLs for Upload
This example generates the pre-signed URL for uploading a file as books.csv
to the stage my_stage
:
PRESIGN UPLOAD @my_stage/books.csv
To upload the file books.csv
with the pre-signed URL, execute the following command:
curl -X PUT -T books.csv <presigned-url>