对象(Object)是对象存储的基本单元,可理解为任何格式类型的数据,例如图片、文档和音视频文件等。存储桶(Bucket)是对象的载体,每个存储桶可容纳任意数量的对象。
每个对象都由对象键(ObjectKey)、对象值(Value)、和对象元数据(Metadata)组成。
对象键(ObjectKey):对象键是对象在存储桶中的唯一标识,可以通俗的理解为文件路径。
对象值(Value):即上传的对象本身,可以通俗的理解为文件内容(Object Content)。
对象元数据(Metadata):是一组键值对,可以通俗的理解为文件的属性,例如:文件的修改时间、存储类型等,您可以在上传对象后对其进行查询。
可以使用 mc ls 命令查看指定 MinIO 别名中某个存储桶中对象信息。例如:
D:\server\minio>mc ls local/images [2021-07-15 13:22:14 CST] 232KiB 234281.jpg [2021-07-15 13:22:14 CST] 173KiB 234313.jpg [2021-07-15 13:22:14 CST] 274KiB 241623.jpg [2021-07-15 13:22:14 CST] 185KiB 265270.jpg [2021-07-15 13:22:00 CST] 229KiB 294528.jpg [2021-07-17 08:08:44 CST] 443B ping.txt [2021-07-21 13:15:12 CST] 0B 20210701\ [2021-07-21 13:15:12 CST] 0B 20210702\ [2021-07-21 13:15:12 CST] 0B 20210713\ [2021-07-21 13:15:12 CST] 0B 300x300\
上面实例中,查看了别名 local 中 images 存储桶中的对象。可通过 --recursive 选项递归的列出 images 存储桶下面所有的对象。如下:
D:\server\minio>mc ls --recursive local/images [2021-07-13 13:09:37 CST] 146KiB 20210701\0f78ad1e685e9e972e3780ebfbdf2192.jpeg ... [2021-07-13 13:09:56 CST] 219KiB 20210702\221406.jpg ... [2021-07-15 13:22:14 CST] 232KiB 234281.jpg ... [2021-07-13 13:09:37 CST] 146KiB 300x300\20210701\0f78ad1e685e9e972e3780ebfbdf2192.jpeg ... [2021-07-13 13:09:56 CST] 219KiB 300x300\20210702\221406.jpg ... [2021-07-17 08:08:44 CST] 443B ping.txt
可以使用 mc mirror 命令将对象同步到远程站点。
(1)递归地将本地文件夹同步到本地别名为 local 的 MinIO 服务的 images/wallpaper 存储桶中。
D:\server\minio>mc mirror wallpaper local/images/wallpaper ...per\315701.jpg: 875.52 KiB / 875.52 KiB [===============================================] 880.52 KiB/s 0s D:\server\minio>mc ls local/images/wallpaper [2021-07-21 13:22:29 CST] 318KiB 314969.jpg [2021-07-21 13:22:29 CST] 250KiB 315327.jpg [2021-07-21 13:22:29 CST] 110KiB 315585.jpg [2021-07-21 13:22:29 CST] 198KiB 315701.jpg
(2)递归地将一个存储桶从 MinIO 云存储同步到 Amazon S3 云存储上的一个存储桶。
C:\> mc mirror play/photos/2014 s3/backup-photos
上面语句,将 MinIO 的 photos/2014 存储桶同步到 Amazon S3 云存储的 backup-photos 存储桶
可以使用 mc cp 命令实现将本地文件复制到 MinIO 云存储,或者将 MinIO 存储服务中的对象拷贝到 Amazon S3 云存储上面。
(1)将对象列表从本地文件系统复制到本地 MinIO 服务。
# 创建 files 存储桶 D:\server\minio>mc mb local/files Bucket created successfully `local/files`. # 将本地 start-minio.bat 文件复制到 files 存储桶 D:\server\minio>mc cp ./start-minio.bat local/files ./start-minio.bat: 152 B / 152 B [===========================================================] 6.95 KiB/s 0s # 查看拷贝结果 D:\server\minio>mc ls local/files [2021-07-10 08:58:00 CST] 152B start-minio.bat
(2)以递归方式将本地文件夹复制到本地 MinIO 服务的 images/test 存储桶
D:\server\minio>mc cp --recursive wallpaper /local/images/test ...per\315327.jpg: 875.52 KiB / 875.52 KiB [================================================] 17.76 MiB/s 0s D:\server\minio>mc ls /local/images/test [2021-07-21 13:31:17 CST] 0B wallpaper\ D:\server\minio>mc ls /local/images/test/wallpaper [2021-07-21 13:31:10 CST] 318KiB 314969.jpg [2021-07-21 13:31:10 CST] 250KiB 315327.jpg [2021-07-21 13:31:10 CST] 110KiB 315585.jpg [2021-07-21 13:31:10 CST] 198KiB 315701.jpg
(3)递归复制多个本地文件夹到本地 MinIO 存储服务。
C:\> mc cp --recursive backup/2014/ backup/2015/ play/archive/
(4)以递归方式将文件夹从 MinIO 云存储复制到 Amazon S3 云存储。
C:\> mc cp --recursive play/mybucket/burningman2011/ s3/mybucket/
可以使用 mc cat 命令查看本地文件系统或者 MinIO 服务器中文件的内容,例如:
(1)查看本地 MinIO 服务中 files 存储桶中的 students.csv 文件内容。
D:\server\minio>mc cat local/files/students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566 3000,Tom,male,19,498
(2)使用 mc cat 命令查看本地文件系统文件的内容。
D:\server\minio> dir 驱动器 D 中的卷是 HuangXin 卷的序列号是 10E3-09C5 D:\server\minio 的目录 2021/07/21 13:21 <DIR> . 2021/07/21 13:21 <DIR> .. ... 2021/07/12 12:36 94 students.csv ... 9 个文件 164,332,237 字节 4 个目录 70,102,593,536 可用字节 D:\server\minio> mc cat ./students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566 3000,Tom,male,19,498
(3)将多个文件连接为一个文件。
C:\> mc cat part.* > complete.img
可以用 mc head 命令查看指定的本地文件,或者远程 MinIO 服务器某个存储桶中的文件前 n 行内容。例如:
(1)查看本地文件前 3 行内容
D:\server\minio>mc head ./students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566 3000,Tom,male,19,498 D:\server\minio>mc head -n 3 ./students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566
(2)查看本地 MinIO 服务上,files 存储桶中的 students.csv 文件前 3 行内容
D:\server\minio>mc head local/files/students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566 3000,Tom,male,19,498 D:\server\minio>mc head -n 3 local/files/students.csv NUM,NAME,SEX,AGE,SCORE 1000,Abel,male,20,537 2000,Lucy,female,21,566
(3)仅显示 Amazon S3 上服务器加密对象的第一行。如果加密密钥包含不可打印字符(如制表符),请将 base64 编码字符串作为密钥传递。
C:\> mc head --encrypt-key "s3/json-data=MzJieXRlc2xvbmdzZWNyZXRrZQltdXN0YmVnaXZlbjE=" s3/json-data/population.json
可以使用 mc mv 命令移动指定的对象到目标位置。例如:
(1)将对象列表从本地文件系统移动到 Amazon S3 云存储。
C:\> mc mv Music/*.ogg s3/jukebox/
(2)将多个本地文件夹递归移动到 MinIO 云存储。
C:\> mc mv --recursive backup/2014/ backup/2015/ play/archive/
可以使用 mc rm 删除指定的对象,例如:
(1)删除本地文件系统中文件 ping.txt。
D:\server\minio>mc rm ./ping.txt Removing `./ping.txt`.
(2)从本地别名为 local 的 MinIO 服务的 images 存储桶中递归删除 wallpaper 前缀中所有的对象。
D:\server\minio>mc rm --recursive --force local/images/wallpaper Removing `local/images/wallpaper/314969.jpg`. Removing `local/images/wallpaper/315327.jpg`. Removing `local/images/wallpaper/315585.jpg`. Removing `local/images/wallpaper/315701.jpg`.
更多关于对象的操作命令,请参考 “mc 命令参考手册”。