您可以通过 mount
命令将对象存储的桶挂载为本地文件系统目录,然后通过标准的 POSIX 协议访问。
挂载存储桶到本地后, 本地系统可以通过兼容的 POSIX 文件接口管理桶内对象。由于只兼容部分 POSIX 语义,因此在本地系统对存储桶执行的操作受限。具体说明如下:
说明
文件写操作遵守 open-to-close 原则,没有执行 flush 操作前,文件可能不会写入到 TOS 服务端。
使用 mount
命令挂载存储桶前,请确保您已安装 Fuse 软件。
./tosutil mount tos://bucket[/prefix] mount_point [-sc=xxx] [-fg] [-ro] [-ad] [-aow] [-ar] [-ac] [-ao] [-dau] [-dbcbr] [-vchecksum] [-dm=0] [-fm=0] [-uid=0] [-gid=0] [-pprof] [-pport=0] [-bgt=0] [-etmout=0] [-atmout=0] [-rconcurrency=0] [-wconcurrency=0] [-oconcurrency=0] [-rl=xxx] [-debug] [-dld=xxx] [-rbs=xxx] [-ups=xxx] [-mrbs=xxx] [-mwbs=xxx] [-tfd=xxx] [-futf] [-rlft=1] [-cfd=xxx] [-mcs=0] [-rfdl=0] [-wfdl=0] [-nftr] [-e=xxx] [-re=xxx] [-i=xxx] [-k=xxx] [-t=xxx] [-conf=xxx]
通用可选参数的说明,请参见通用可选参数。
参数名 | 参数类型 | 描述 |
---|---|---|
bucket | String | 桶名。 |
prefix | String | 对象名前缀。 |
mount_point | String | 待挂载的本地文件系统目录路径。 |
-sc | Enum | 写入被挂载桶内对象的存储类型,取值说明如下:
|
-fg | Bool | 使用前台进程模式执行挂载。 |
-ro | Bool | 将本地文件系统目录挂载为 Read-Only 模式。 |
-ad | Bool | 允许在挂载的本地文件系统目录上执行删除操作。 |
-aow | Bool | 允许在挂载的本地文件系统目录上执行覆盖操作。 |
-ar | Bool | 允许在挂载的本地文件系统目录上执行重命名(移动)操作。 |
-ac | Bool | 允许对已存在文件执行追加写操作。 说明
|
-ao | Bool | 允许其他操作系统用户访问挂载的本地文件系统目录。 |
-dau | Bool | 关闭进程退出时自动卸挂载机制。 |
-dbcbr | Bool | 关闭通过 readdir 操作来构建文件元数据本地缓存机制。 |
-vchecksum | Bool | 在顺序读写场景校验数据一致性。 |
-dm | Integer | 挂载的本地文件系统的目录权限,默认为 0755。 |
-fm | Integer | 挂载的本地文件系统的文件权限,默认为 0644。 |
-uid | Integer | 挂载的本地文件系统目录的 uid,默认为当前用户的 uid。 |
-gid | Integer | 挂载的本地文件系统目录的 gid,默认为当前用户的 gid。 |
-pprof | Bool | 开启或关闭 pprof 服务,默认为开启。 |
-pport | Integer | 开启 pprof 服务时使用的端口号,默认为 18888。 |
-bgt | Integer | 允许操作系统 fuse 命令异步执行的最大请求数,默认为 16。 |
-etmout | Integer | 挂载的本地文件系统目录的 Entry-Timeout,单位:秒,默认为 1 秒。 |
-atmout | Integer | 挂载的本地文件系统目录的 Attribute-Timeout,单位:秒,默认为 1 秒。 |
-rconcurrency | Integer | 从桶内读取数据的最大并发数,默认为 1000。 |
-wconcurrency | Integer | 向桶内写入数据的最大并发数,默认为 1000。 |
-oconcurrency | Integer | 在桶上执行非读写操作的最大并发数,默认为 1000。 |
-rl | Integer/String | 读写数据的最大带宽(吞吐),单位:字节,默认为 1GB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-debug | Bool | 开启 fuse 命令的 Debug 日志。 |
-dld | String | 写入 Debug 日志的本地文件目录。 |
-rbs | Integer/String | 读取数据的缓存块大小,默认为 3MB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-ups | Integer/String | 写入数据时的分片大小,默认为 8MB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-mrbs | Integer/String | 读取单个文件数据时可用的最大内存,默认为 100MB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-mwbs | Integer/String | 写入单个文件数据时可用的最大内存(不使用本地临时文件场景),默认为 50MB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-tfd | String | 写入数据时使用的本地临时文件的目录,当分片大小大于 20MB 时,会使用本地临时文件。 |
-futf | Bool | 写入数据时,强制使用本地临时文件不论分片大小。 |
-rlft | Integer/String | 执行 rename 操作时的大文件阈值。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-cfd | String | 读取数据时使用的本地缓存文件的目录,未设置该值则代表不开启本地缓存。 |
-mcs | Integer/String | 开启本地缓存后,本地缓存文件的存储容量上限,默认为 1TB。 说明 支持带容量单位配置,例如,配置 1MB 代表 1048576 字节。 |
-rfdl | Integer | 最大可打开的读描述符个数,默认为 10000。 |
-wfdl | Integer | 最大可打开的写描述符个数,默认为 10000。 |
-nftr | Bool | 执行打开文件描述符(fd)的 flush 操作时,数据不会立即写入存储桶,而是要到资源释放(release) 时才会触发写入存储桶内。 |
执行命令挂载桶为标准的本地文件系统目录,并配置支持覆盖、删除、移动。示例如下:
./tosutil mount tos://bucket-test mount_path -aow -ad -ar
bucket [bucket-test] is mounted at [/root/mount_path] with generation [8282ef44-305f-11ef-a7ae-b645e1163e54]
挂载完成后,您可以通过 df -h <mount_point>
命令,查看存储桶是否挂载成功。例如本例中执行以下命令:
df -h mount_path
返回如下,表示挂载成功。
Filesystem Size Used Avail Use% Mounted on tosutil/v3.0.1 0.0K 0.0K 0.0K - /root/mount_path
说明
挂载完成后,如果您想要取消挂载存储桶,您可以使用 umount <mount_point>
命令。