本文介绍如何通过公网将本地数据上传至SMB文件系统,或者将SMB文件系统内的数据下载到本地。

前提条件

方案一:IIS FTP

当有少量文件需要一次性上传和下载时,建议您在本地系统配置FTP客户端来完成,此方案具有以下优点:
  • 支持众多操作系统平台。
  • 提供图形化操作界面。
  1. 配置ECS。
    从公网访问阿里云文件存储NAS,需要配置ECS作为中转节点。
    说明 上传下载文件数据占用ECS公网带宽,建议您新购一台ECS实例专门负责文件数据的上传与下载,避免占用业务带宽。
    • (推荐)使用新购ECS实例挂载NAS作为中转节点。建议配置项如下,挂载步骤请参见新购ECS时挂载NAS文件系统01
      表 1. 基础配置:
      参数 说明
      镜像 建议您选择Windows 2019镜像。
      表 2. 网络和安全:
      参数 说明
      公网 IP 选中分配公网 IPv4 地址
      带宽计费模式 选中按使用流量
      带宽峰值 带宽峰值设为最大的100 Mbps。
    • 使用已有ECS挂载NAS作为中转节点,详情请参见Windows系统挂载SMB文件系统
  2. 在ECS上配置IIS FTP服务以及在本地系统配置FTP客户端,具体配置方式请参见设置Windows IIS Web服务
说明
  • 需在VPC安全组打开对应的FTP TCP端口。
  • 您也可以配置其他FTP服务端和客户端进行公网上传下载数据。
  • 弹性公网IP对入方向流量不收费,仅对出方向流量收费。也就是说,从公网上传数据到NAS不会收取流量费用,而从NAS下载数据则会收取流量费用。计费详情请参见弹性公网IP按量付费

方案二:rsync

当有大量文件上传和下载或需要频繁上传和下载的任务时,建议您在本地系统安装使用rsync命令行工具执行上传下载任务,此方案具有以下优点:
  • 上传下载后的文件元数据不变(包括属主及权限信息)。
  • 支持数据增量同步。
  • 本地Linux或macOS系统可配置crontab向云上NAS自动备份数据。
  1. 配置ECS。
    从公网访问阿里云文件存储NAS,需要配置ECS作为中转节点。
    说明 上传下载文件数据需要占用ECS公网带宽,建议您新购一台ECS实例专门负责文件数据的上传与下载,避免占用业务带宽。
    • (推荐)使用新购ECS实例挂载NAS作为中转节点。建议配置项如下,挂载步骤请参见新购ECS时挂载NAS文件系统01
      表 3. 基础配置:
      参数 说明
      镜像 建议您选择CentOS 8.0镜像。
      表 4. 网络和安全:
      参数 说明
      公网 IP 选中分配公网 IPv4 地址
      带宽计费模式 选中按使用流量
      带宽峰值 带宽峰值设为最大的100 Mbps。
    • 使用已有ECS挂载NAS作为中转节点,详情请参见Linux系统挂载SMB文件系统
  2. 安装rsync工具。
    说明 需在VPC安全组打开SSH(TCP 22)端口。
    • Windows

      请下载安装Cygwin模拟环境,您可以在安装过程中搜索安装rsync工具,也可以手动下载编译安装rsync

    • Linux
      • 如果您使用的是CentOS或Redhat操作系统,请执行以下命令,使用yum包管理器安装rsync。
        sudo yum install rsync
      • 如果您使用的是Ubuntu或Debian操作系统,请执行以下命令,使用apt包管理器安装rsync。
        sudo apt-get install rsync
      • 如果您使用的其他版本Linux,请使用对应的包管理器安装rsync工具。
    • macOS
      请下载安装 homebrew包管理器,然后执行以下命令安装rsync工具。
      brew install rsync
  3. 上传数据。
    执行以下命令,将本地目录以增量同步的方式,上传到阿里云NAS。
    rsync -avP DirToSync/ root@1.2.3.4:/mnt/DirToSync/
    命令中的参数请根据实际值修改,参数含义如下:
    参数 说明
    DirToSync 需要上传的本地目录名。
    root 上传目标的NAS文件系统目录的属主。
    1.2.3.4 已挂载SMB文件系统的Linux ECS公网IP。
    /mnt ECS实例中用来挂载NAS的路径。
    说明 rsync命令中的源路径结尾必须带有 /,否则同步后数据路径不能匹配。
  4. 下载数据。
    执行以下命令,从阿里云NAS下载数据到本地目录。
    rsync -avP root@1.2.3.4:/mnt/DirToSync/ DirToSync/
  5. 自动上传。
    本地Linux或macOS操作系统,可以基于rsync命令,通过crontab配置定时上传备份任务。
    • Linux操作系统
      1. 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接Linux实例
        执行以下命令,确认连接成功。
        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
      2. 配置crontab。
        执行 crontab -e命令打开编辑器,配置定时上传任务,配置内容如下。
        0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/
        这项crontab配置将会在每天23时0分把本机登录用户的Documents目录自动上传备份到阿里云NAS。您可以根据实际需求替换配置中的参数。
    • macOS操作系统
      1. /usr/sbin/cron目录配置硬盘访问权限。

        请进入系统设置,单击Security & Privacy > Privacy > Full Disk Access,单击解锁,点击+,选择Macintosh HD目录,按cmd+shift+.组合键显示隐藏目录,选择/usr/sbin/cron

      2. 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接Linux实例
        执行以下命令,确认连接成功。
        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
      3. 配置crontab。
        执行 crontab -e命令打开编辑器,配置定时上传任务,配置内容如下。
        0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/
        这项crontab配置将会在每天23时0分把本机登录用户的Documents目录自动上传备份数据到阿里云NAS。您可以根据实际需求替换配置中的参数。

方案三:将数据上传至OSS再迁移到NAS

如果您需要上传大量数据到NAS,而公网访问ECS的带宽无法满足您的需求,建议先上传数据到OSS,然后将OSS数据迁移到NAS。详情请参见 上传文件迁移实施
说明
  • 目前迁移服务仍在公测阶段,需要提交申请白名单。
  • 迁移服务无法保证文件元数据不变,迁移完成后可以再执行rsync修复元数据信息。

方案四:本地数据中心挂载NAS

以上三种方案相对简便,但如果您需要从本地数据中心频繁读写NAS上的大量数据,则需要创建网络专线,从数据中心直接挂载NAS进行访问。

说明 需在VPC安全组开启SMB(TCP 445)端口。

访问上传数据

数据上传后,您可以在业务所属的ECS或容器上挂载NAS文件系统,共享访问NAS文件系统上的数据。

以ECS为例,您可以用Windows系统挂载SMB文件系统,然后就像访问本地数据一样访问NAS上的文件数据。详情请参见Windows系统挂载SMB文件系统

您也可以在云上搭建业务应用,在多台计算节点上通过程序大量读写NAS上的数据,例如通过Windows IIS服务访问阿里云NAS