bm cat
Syntax
The bm cat command concatenates the contents of a file or
object to another file or object. You can also use the command to
display the contents of the specified file or object to STDOUT.
cat has similar functionality to cat.
The following command concatenates the contents of an object on a
Buckit deployment to STDOUT:
bm cat play/mybucket/myobject.txt
The bm cat command has the following syntax:
bm [GLOBALFLAGS] cat \
ALIAS [ALIAS ...] \
[--enc-c "value"] \
[--offset "int"] \
[--part-number "int"] \
[--rewind] \
[--tail "int"] \
[--version-id "string"] \
[--zip]
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.
You can also use bm cat against a local filesystem to produce similar results to the cat commandline tool.
Parameters
- ALIAS
- Required
The alias of a Buckit deployment and the full path to the object. For example:
bm cat mybuckit/mybucket/myobject.txt
You can specify multiple objects on the same or different Buckit deployment. For example:
bm cat mybuckit/mybucket/object.txt mybuckit/myotherbucket/object.txt
For an object on a local filesystem, specify the full path to that object. For example:
bm cat ~/data/object.txt
- --enc-c
- Optional
Encrypt or decrypt objects using server-side SSE-C encryption with client-managed keys.
The parameter accepts a key-value pair formatted as
KEY=VALUEKEYThe full path to the object as
alias/bucket/path/object.ext.You can specify only the top-level path to use a single encryption key for all operations in that path.
VALUESpecify either a 32-byte RawBase64-encoded key or a 64-byte hex-encoded key for use with SSE-C encryption.
Raw Base64 encoding rejects
=-padded keys. Omit the padding or use a Base64 encoder that supports RAW formatting.KEY- the full path to the object asalias/bucket/path/object.VALUE- the 32-byte RAW Base64-encoded data key to use for encrypting object(s).
For example:
# RawBase64-Encoded string "mybucket32byteencryptionkeyssec" --enc-c "mybuckit/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
You can specify multiple encryption keys by repeating the parameter.
Specify the path to a prefix to apply encryption to all matching objects at that path:
--enc-c "mybuckit/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
Note
Buckit strongly recommends against using SSE-C encryption in production workloads. Use SSE-KMS via the
--enc-kmsor SSE-S3 via--enc-s3parameters instead.
- --offset
- Optional
Specify an integer that is the number of bytes from which the command offsets the output.
Mutually exclusive with the
--part-numberflag.
- --part-number
- Optional
Download a specific part number of a multi-part upload. Specify the integer of the part number to download.
- --rewind
- Optional
Directs
bm catto operate only on the object version(s) that existed at specified point-in-time.To rewind to a specific date in the past, specify the date as an ISO8601-formatted timestamp. For example:
--rewind "2020.03.24T10:00".To rewind a duration in time, specify the duration as a string in
#d#hh#mm#ssformat. For example:--rewind "1d2hh3mm4ss".
--rewindrequires that the specifiedALIASbe an S3-compatible service that supports Bucket Versioning. For Buckit deployments, usebm versionto enable or disable bucket versioning.
- --tail
- Optional
Specify an integer that is the number of bytes from which the command trims the output.
Mutually exclusive with the
--part-numberflag.
- --version-id, vid
- Optional
Directs
bm catto operate only on the specified object version.--version-idrequires that the specifiedALIASbe an S3-compatible service that supports Bucket Versioning. For Buckit deployments, usebm versionto enable or disable bucket versioning.
Global Flags
This command supports any of the global flags.
Examples
View an S3 Object
Use bm cat to return the object:
bm cat ALIAS/PATH
View an S3 Object at a Point-In-Time
Use bm cat --rewind to return the object at a specific
point-in-time in the past:
bm cat ALIAS/PATH --rewind DURATION
Replace
PATHwith the path to the object on the S3-compatible host.Replace
DURATIONwith the point-in-time in the past at which the command returns the object. For example, specify30dto return the version of the object 30 days prior to the current date.
Requires Versioning
bm cat requires bucket versioning to
use this feature. Use bm version to enable versioning on a bucket.
View an S3 Object with Specific Version
Use bm cat --version-id to return a specific version of the
object:
bm cat ALIAS/PATH --version-id VERSION
Replace
PATHwith the path to the object on the S3-compatible host.Replace
VERSIONwith the specific version of the object to return.
Requires Versioning
bm cat requires bucket versioning to
use this feature. Use bm version to enable versioning on a bucket.
Download a particular part
Use bm cat --part-number to download a particular part of a multi-part upload:
bm cat ALIAS/PATH --part-number=#
Replace
PATHwith the path to the object on the S3-compatible host.Replace
#with the integer of the part number to download. For example, to download part 3 of at 16-part multi-part file, use--part-number=3.
You cannot use the --part-number flag if you are using either the --offset or the --tail flags.
Behavior
S3 Compatibility
The bm commandline tool is built for compatibility with the AWS S3 API and is tested with Buckit and AWS S3 for expected functionality and behavior.
Buckit provides no guarantees for other S3-compatible services, as their S3 API implementation is unknown and therefore unsupported. While bm commands may work as documented, any such usage is at your own risk.