小硬盘的福利--使用rclone挂载云存储

背景

  很多情况下,我们部署Kodcloud的服务器硬盘空间是有限的,想要找到一款速度好空间大又廉价的服务器也不容易,所以时常听到要求Kodcloud尽快支持云存储的需求。在KOD团队开发出完善的云存储支持之前,我先在此介绍一个小工具满足大伙的临时之需——rclone.

介绍

  rclone是一款用来同步文件的命令行工具,支持非常多的存储,比如各大网盘,onedrive,google drive.dropbox….此外还支持FTP.SFTP,非常强大,完整的存储支持列表如下:

  • Amazon Drive
  • Amazon S3
  • Backblaze B2
  • Box
  • Ceph
  • DigitalOcean Spaces
  • Dreamhost
  • Dropbox
  • FTP
  • Google Cloud Storage
  • Google Drive
  • HTTP
  • Hubic
  • Memset Memstore
  • Microsoft Azure Blob Storage
  • Microsoft OneDrive
  • Minio
  • Nextloud
  • OVH
  • Openstack Swift
  • Oracle Cloud Storage
  • Ownloud
  • pCloud
  • put.io
  • QingStor
  • Rackspace Cloud Files
  • SFTP
  • Wasabi
  • WebDAV
  • Yandex Disk
  • The local filesystem

  至于它怎么方便强大,以及相关命令的使用请各位自行去了解,在此只介绍我们Kodcloud非常需要的功能——挂载。在服务器支持fuse的情况下,我们可以将上述列表中任何存储挂载至本地,这样你的服务器就“多了一块硬盘”,而我们的kodcloud就可以像管理本地文件一样管理这个“新硬盘”了!不再废话,教程开始~

配置

  • 安装rclone
    1
    2
    3
    4
    5
    wget https://downloads.rclone.org/rclone-v1.39-linux-amd64.zip
    unzip rclone-v1.39-linux-amd64.zip
    chmod 0777 ./rclone-*/rclone
    cp ./rclone-*/rclone /usr/bin/
    rm -rf ./rclone-*

这里我们直接下载的可执行文件,如果你想自行编译,或者你是arm的机器请去rclone官网了解相关信息.

  • 配置存储,我手上有一个2T硬盘的服务器…开启了FTP,所以在此就以FTP存储为例。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    root@iiiih:~# rclone config
    No remotes found - make a new one
    n) New remote
    s) Set configuration password
    q) Quit config
    n/s/q> n
    name> ftp
    Type of storage to configure.
    Choose a number from below, or type in your own value
    1 / Amazon Drive
    \ "amazon cloud drive"
    2 / Amazon S3 (also Dreamhost, Ceph, Minio)
    \ "s3"
    3 / Backblaze B2
    \ "b2"
    4 / Box
    \ "box"
    5 / Cache a remote
    \ "cache"
    6 / Dropbox
    \ "dropbox"
    7 / Encrypt/Decrypt a remote
    \ "crypt"
    8 / FTP Connection
    \ "ftp"
    9 / Google Cloud Storage (this is not Google Drive)
    \ "google cloud storage"
    10 / Google Drive
    \ "drive"
    11 / Hubic
    \ "hubic"
    12 / Local Disk
    \ "local"
    13 / Microsoft Azure Blob Storage
    \ "azureblob"
    14 / Microsoft OneDrive
    \ "onedrive"
    15 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
    \ "swift"
    16 / Pcloud
    \ "pcloud"
    17 / QingCloud Object Storage
    \ "qingstor"
    18 / SSH/SFTP Connection
    \ "sftp"
    19 / Webdav
    \ "webdav"
    20 / Yandex Disk
    \ "yandex"
    21 / http Connection
    \ "http"
    Storage> 8
    FTP host to connect to
    Choose a number from below, or type in your own value
    1 / Connect to ftp.example.com
    \ "ftp.example.com"
    host> 91.121.94.4
    FTP username, leave blank for current username, root
    user> Ashin
    FTP port, leave blank to use default (21)
    port> 21
    FTP password
    y) Yes type in my own password
    g) Generate random password
    y/g> y
    Enter the password:
    password:
    Confirm the password:
    password:
    Remote config
    --------------------
    [ftp]
    host = 91.121.94.4
    user = Ashin
    port = 21
    pass = *** ENCRYPTED ***
    --------------------
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote
    y/e/d> y
    Current remotes:

    Name Type
    ==== ====
    ftp ftp

    e) Edit existing remote
    n) New remote
    d) Delete remote
    r) Rename remote
    c) Copy remote
    s) Set configuration password
    q) Quit config
    e/n/d/r/c/s/q> q
    root@iiiih:~#

整个过程按照提示很容易操作,不再赘述。

  • 挂载
      rclone的挂载需要fuse支持,一般的KVM架构服务器都是没问题的,openvz架构的可以工单咨询要求支持,搞不搞的定就看你自己了。。。
    nohup rclone mount ftp: 本地目录 --allow-other &
      只需一条命令,其中ftp:指的是你创建存储时自定义的命名再加上冒号,上面例子中我命名就为ftp。就这么简单,现在刷新Kod网页,你就可以像在本地一样地管理文件啦。
卸载套路云“不干净”的东西

  1. 1. 背景
  2. 2. 介绍
  3. 3. 配置