5.9 KiB
mc share upload
minio
Table of Contents
mc share upload
Syntax
The mc share upload
command generates a temporary presigned URL with integrated access
credentials for downloading objects from a MinIO bucket. The temporary
URL expires after a configurable time limit.
Applications can perform a PUT
to retrieve the object
from the URL.
For more information on shareable object URLs, see the Amazon S3
documentation on Pre-Signed URLs
<AmazonS3/latest/dev/ShareObjectPreSignedURL.html>
.
EXAMPLE
The following command generates a new presigned upload URL for the
mydata
bucket on the myminio
MinIO
deployment:
mc share upload --recursive myminio/mydata
SYNTAX
The command has the following syntax:
mc [GLOBALFLAGS] share upload \
[--expire "string"] \
[--recursive] \
ALIAS
Parameters
ALIAS
Required The alias <alias>
of a MinIO deplyment and the full
path to the object for which to generate an upload URL. For example:
mc share upload play/mybucket/object.txt
You can specify multiple objects on the same or different MinIO deployments. For example:
mc share upload play/mybucket/object.txt play/mybucket/otherobject.txt
If specifying the path to a bucket or bucket prefix, you
must also specify the ~mc share upload --recursive
argument. For
example:
mc share upload --recursive play/mybucket/
mc share upload --recursive play/mybucket/myprefix/
--expire, E
Optional Set the expiration time limit for all generated URLs.
Specify a string with format ##h##m##s
format. For
example: 12h34m56s
for an expiry of 12 hours, 34 minutes,
and 56 seconds after URL generation.
Defaults to 168h
or 168 hours (7 days).
--recursive, r
Optional Modifies the CURL URL to support uploading objects
to a bucket or bucket prefix. Required if any ALIAS
specifies a path to a bucket or bucket prefix. The modified CURL output
resembles the following:
curl ... -F key=ALIAS/<NAME> -F file=@<FILE>
Replace <FILE>
with the path to the file to
upload.
Replace <NAME>
with the file once uploaded.
Global Flags
Examples
Generate a URL to Upload Object(s)
Upload Single Object
Use mc share upload
to generate a URL that supports POST
requests for uploading
a file to a specific object location on a MinIO deployment:
mc share upload --expire DURATION ALIAS/PATH
- Replace
ALIAS <mc share upload ALIAS>
with thealias <alias>
of the MinIO deployment. - Replace
PATH <mc share upload ALIAS>
with the path to the object on the MinIO deployment. - Replace
DURATION <mc share upload --expire>
with the duration after which the URL expires. For example, to set a 30 day expiry, specify30d
.
Upload Multiple Objects
Use mc share upload
with the ~mc share upload --recursive
and ~mc share upload --expire
options to generate a temporary URL that supports POST
requests for uploading files to a bucket on a MinIO deployment:
mc share upload --recursive --expire DURATION ALIAS/PATH
- Replace
ALIAS <mc share upload ALIAS>
with thealias <alias>
of the MinIO deployment. - Replace
PATH <mc share upload ALIAS>
with the path to the bucket or bucket prefix on the MinIO deployment. - Replace
DURATION <mc share upload --expire>
with the duration after which the URL expires. For example, to set a 30 day expiry, specify30d
.
The command returns a CURL command for uploading an object to the specified bucket prefix.
- Replace the
<FILE>
string in the returned CURL command with the path to the file to upload. - Replace the
<NAME>
string in the returned CURL command with the name of the file in the bucket.
You can use a shell script loop to recursively upload the contents of a filesystem directory to the S3-compatible service:
#!/bin/sh
for file in ~/Documents/photos/
do
curl https://play.min.io/mybucket/ \
-F policy=AAAAA -F x-amz-algorithm=AWS4-HMAC-SHA256 \
-F x-amz-credential=AAAA/us-east-1/s3/aws4_request \
-F x-amz-date=20200812T202556Z \
-F x-amz-signature=AAAA \
-F bucket=mydata -F key=mydata/${file} -F file=@${file}
done
Defer to the documented best practices for your preferred scripting language for iterating through files in a directory.