目录

挂载 S3 到 Mac 和 Windows 上作为本地目录使用

挂载 S3 到 Mac 和 Windows 上作为本地目录使用

一、前提条件

  • 已创建RAM用户并获取访问密钥(AccessKey)。具体操作,请参见创建RAM用户。

  • 为已创建的RAM用户授予系统权限或自定义权限。

    • 系统权限您可以为RAM用户授予管理OSS的权限AliyunOSSFullAccess或者只读访问OSS的权限AliyunOSSReadOnlyAccess。

    • 自定义权限您还可以结合业务场景,通过创建自定义权限实现OSS的细粒度权限控制。更多信息,请参见RAM Policy常见示例。

二、mac & linux

s3fs

s3fs支持您在Linux,macOS系统中,将存储空间挂载到本地文件系统,让您能够像操作本地文件一样操作对象,实现数据的共享。关于s3fs的更多信息,请参见GitHub。如果您在s3fs使用过程中遇到问题,请参见常见问题进行排查。

主要特点

  • 支持POSIX文件系统的大部分功能,例如上传和下载文件、目录、 软链接、设置用户权限等。
  • 支持随机写和追加写。
  • 不支持硬链接。
  • 大文件通过分片方式上传。
  • 依赖本地文件作为缓存。

重要 通过s3fs上传或者下载文件时,需要经过本地缓存,其读写性能取决于磁盘的速度。由于s3fs缓存可以无限增长,请确保定期清除。

通过s3fs挂载存储空间的步骤如下:

安装s3fs

以下仅列举Ubuntu、CentOS以及Mac系统安装s3fs的命令。关于其他系统安装s3fs的更多信息,请参见s3fs安装。

  • Ubuntu
1
sudo apt install s3fs 
  • CentOS
1
2
sudo yum install epel-release 
sudo yum install s3fs-fuse
  • Mac
1
2
brew install --cask macfuse 
brew install gromgit/fuse/s3fs-mac

配置账号访问信息。

将具有Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/.passwd-s3fs文件中。

1
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs

将/.passwd-s3fs文件的权限设置为600。

1
chmod 600 ${HOME}/.passwd-s3fs

挂载存储空间。

  • 创建挂载点。
1
mkdir /tmp/oss-bucket
  • 将华东1(杭州)地域的examplebucket挂载至/tmp/oss-bucket。
1
2
3
sudo s3fs examplebucket /tmp/oss-bucket -o passwd_file=$HOME/.passwd-s3fs -ourl=http://oss-cn-hangzhou.aliyuncs.com

sudo s3fs doc /var/s3/doc -o passwd_file=$HOME/.passwd-s3fs -o use_path_request_style -o endpoint=cn-south-1 -o url=https://dereking.me:1443  

如果是与OSS同地域的ECS访问,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的内网endpoint。更多信息,请参见访问域名和数据中心。

关于s3fs支持参数的更多信息,请参见https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon?spm=a2c4g.473948.0.0.7db62921aRAPGK。

三、windows

Rclone

Rclone是一个命令行程序,用于管理云存储中的数据,支持在50多种云存储产品间同步数据。相对于s3fs和goofys,Rclone还支持将存储空间挂载到Windows系统上,作为本地磁盘共享数据。

主要特点

  • Rclone支持文件同步、文件传输、加密、挂载等。
  • Rclone支持多种系统,能让您将存储空间挂载到本地文件系统中,并通过多种协议提供服务。

关于Rclone的介绍,请参见Rclone。

操作步骤

在Windows操作系统下,通过Rclone挂载存储空间的步骤如下:

1.下载并按照页面指引安装Winfsp。

以下载winfsp-1.12.22339版本为例。下载地址,请参见Winfsp

2.下载Rclone工具。

以下载rclone-v1.60.1-windows-amd64版本为例。下载地址,请参见Rclone。Rclone是一个命令行程序,下载后,只需解压到本地任意目录即可,此处以解压到D:\Rclone目录为例。

3.配置Rclone。

  • 将D:\Rclone添加到环境变量。
  • 打开命令行窗口,输入rclone –version,然后按下Enter。
  • 返回rclone v1.60.1,表明Rclone已成功安装。
  • 输入rclone config命令,然后按下Enter。
  • 输入n,按下Enter,然后新建new remote。
  • 以new remote命名为test-remote为例。
  • 输入磁盘名称,例如oss-disk,然后按下Enter。
  • 选择包含Amazon S3 Compliant Storage的选项,即输入5,然后按下Enter。
  • 选择包含Alibaba Cloud Object Storage System (OSS)的选项,即输入2,然后按下Enter。
  • 执行到env_auth>,按下Enter。
  • 执行到access_key_id>,输入OSS的访问密钥AccessKey ID,然后按下Enter。
  • 执行到 secret_access_key> ,输入OSS的访问密钥AccessKey Secret,然后按下Enter。
  • 执行到endpoint>,输入访问OSS的endpoint,然后按下Enter。 以访问华东1(杭州)外网为例,endpoint填写为oss-cn-hangzhou.aliyuncs.com。如果是ECS上的Windows环境,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的内网endpoint。
  • 执行到acl>,选择Object读写权限。 该选项仅对新上传的Object有效。您可以根据实际需求选择合适的读写权限。此处以选择default(私有权限)为例,即输入1,然后按下Enter。
  • 执行到storage_class>,选择Object的存储类型。 此处以选择default(继承Bucket存储类型)为例,即输入1,然后按下Enter。
  • 执行到Edit advanced config? (y/n) ,输入n,然后按下Enter。
  • 输入q,完成所有配置。

4.挂载存储空间。

以将examplebucket挂载到E:盘,并以D:\disk-cache路径作为缓存目录为例。

1
rclone mount oss-disk:/examplebucket E: --cache-dir D:\disk-cache --vfs-cache-mode writes

返回The service rclone has been started信息,表示挂载成功。此时,您还可以查看到examplebucket(E:)的磁盘。