MinIO 对象管理

对象(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

显示对象前n行内容

可以用 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 命令参考手册”。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号