=========== ``mc pipe`` =========== .. default-domain:: minio .. contents:: Table of Contents :local: :depth: 2 .. mc:: mc pipe Syntax ------ .. start-mc-pipe-desc The :mc:`mc pipe` command streams content from `STDIN `__ to a target object. .. end-mc-pipe-desc .. tab-set:: .. tab-item:: EXAMPLE The following command writes contents of ``STDIN`` to an S3 compatible storage. .. code-block:: shell :class: copyable echo "My Meeting Notes" | mc pipe s3/engineering/meeting-notes.txt .. tab-item:: SYNTAX The command has the following syntax: .. code-block:: shell :class: copyable mc [GLOBALFLAGS] pipe \ TARGET \ [--attr "string"] \ [--checksum "string"] \ [--enc-kms "string"] \ [--enc-s3 "string"] \ [--enc-c "string"] \ [--storage-class, --sc "string"] \ [--tags "string"] .. include:: /includes/common-minio-mc.rst :start-after: start-minio-syntax :end-before: end-minio-syntax .. versionchanged:: RELEASE.2023-01-11T03-14-16Z ``mc pipe`` now supports concurrent uploads for better throughput of large streams. Parameters ~~~~~~~~~~ .. mc-cmd:: TARGET :required: The full path to the :ref:`alias ` or prefix where the command should run. .. mc-cmd:: --attr :optional: Add custom metadata for the object. Specify key-value pairs as ``KEY=VALUE\;``, separating each pair with a back slash and semicolon (``\;``). For example, ``--attr key1=value1\;key2=value2\;key3=value3``. .. mc-cmd:: --checksum :optional: .. versionadded:: RELEASE.2024-10-02T08-27-28Z Add a checksum to an uploaded object. Valid values are: - ``MD5`` - ``CRC32`` - ``CRC32C`` - ``SHA1`` - ``SHA256`` The flag requires server trailing headers and works with AWS or MinIO targets. .. block include of enc-c , enc-s3, and enc-kms .. include:: /includes/common-minio-sse.rst :start-after: start-minio-mc-sse-options :end-before: end-minio-mc-sse-options .. mc-cmd:: --storage-class, --sc :optional: Set the storage class for the new object at the :mc-cmd:`~mc pipe TARGET`. See :aws-docs:`Amazons documentation ` for more information on S3 storage classes. .. mc-cmd:: --tags :optional: Applies one or more tags to the TARGET. Specify an ampersand-separated list of key-value pairs as ``KEY1=VALUE1&KEY2=VALUE2``, where each pair represents one tag to assign to the objects. Global Flags ~~~~~~~~~~~~ .. include:: /includes/common-minio-mc.rst :start-after: start-minio-mc-globals :end-before: end-minio-mc-globals Examples -------- Write Contents of ``STDIN`` to the Local Filesystem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command writes the contents of STDIN to the ``/tmp`` folder on the local filesystem. .. code-block:: shell :class: copyable mc pipe /tmp/hello-world.go Copy an ISO Image to S3 Storage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command first streams the contents of an iso image for Debian and then uses the stream to create the object at an S3 path. .. code-block:: shell :class: copyable cat debian-live-11.5.0-amd64-mate.iso | mc pipe s3/opensource-isos/debian-11-5.iso Stream MySQL Database Dump to S3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command first streams a MySQL database and uses the stream to create a backup on S3 with :mc-cmd:`mc pipe`: .. code-block:: shell :class: copyable mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-sep-28-2022.sql Write a File to a Reduced Redundancy Storage Class ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command takes the STDIN stream and creates an object on the Reduced Redundancy storage class on S3. .. code-block:: shell :class: copyable mc pipe --storage-class REDUCED_REDUNDANCY s3/personalbuck/meeting-notes.txt Copy a File to a MinIO Deployment with Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command uploads an MP3 file to a MinIO deployment with an ALIAS of ``myminio`` and a ``music`` bucket. The object writes with some metadata for ``Cache-Control`` and ``Artist``. .. code-block:: shell :class: copyable cat music.mp3 | mc pipe --attr "Cache-Control=max-age=90000,min-fresh=9000;Artist=Unknown" myminio/music/guitar.mp3 Set Tags on Uploaded Objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following command creates an object on a MinIO deployment with an ALIAS of ``myminio`` in bucket ``mybucket`` with two tags. MinIO supports adding up to 10 custom tags to an object. .. code-block:: shell :class: copyable tar cvf - . | mc pipe --tags "category=prod&type=backup" myminio/mybucket/backup.tar