mc share upload
Syntax
The mc share upload command generates a temporary presigned URL with integrated access credentials for uploading objects to a MinIO bucket. The temporary URL expires after a configurable time limit.
Applications can perform a PUT to upload an object using the URL.
For more information on shareable object URLs, see the Amazon S3 documentation on Pre-Signed URLs.
The following command generates a new presigned upload URL for the mydata bucket on the myminio MinIO deployment:
The command has the following syntax:
- Brackets
[]indicate optional parameters. - Parameters sharing a line are mutually dependent.
- Parameters separated using the pipe
|operator are mutually exclusive.
Copy the example to a text editor and modify as-needed before running the command in the terminal/shell.
Parameters
ALIAS
mc-cmd
Required The alias of a MinIO deplyment and the full path to the object for which to generate an upload URL. For example:
You can specify multiple objects on the same or different MinIO deployments. For example:
If specifying the path to a bucket or bucket prefix, you must also specify the --recursive argument. For example:
--content-type, T
mc-cmd
Optional Restrict uploads to only requests with a specific Content-Type header.
Specify a string with the desired Content-Type value to accept. For example, video/mp4.
If configured, clients using the generated URL must include a Content-Type header for the specified type. MinIO rejects requests that do not have the correct Content-Type header.
Content types are also known as media types.
--expire, E
mc-cmd
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
mc-cmd
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:
Replace <FILE> with the path to the file to upload.
Replace <NAME> with the object name once uploaded. This may include prefixes.
Global Flags
This command supports any of the global flags.
Examples
Generate a URL to Upload Object(s)
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:
Use mc share upload with the --recursive and --expire options to generate a temporary URL that supports POST requests for uploading files to a bucket on a MinIO deployment:
- Replace
ALIASwith the alias of the MinIO deployment. - Replace
PATHwith the path to the bucket or bucket prefix on the MinIO deployment. - Replace
DURATIONwith 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 object in the bucket. This may include prefixes.
You can use a shell script loop to recursively upload the contents of a filesystem directory to the S3-compatible service:
This example will upload each file in the directory ~/Documents/photos/ to the mybucket bucket under the prefix photos. Defer to the documented best practices for your preferred scripting language for iterating through files in a directory.
Behavior
S3 Compatibility
SILO is the supported server for PGSTY mcli; compatibility with upstream MinIO and other S3 services is best effort.