1
0
mirror of https://github.com/minio/docs.git synced 2025-04-22 19:02:57 +03:00
docs/source/reference/minio-mc/mc-share-upload.rst
2022-09-16 16:40:20 -04:00

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 the alias <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, specify 30d.

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 the alias <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, specify 30d.

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.

Behavior

S3 Compatibility