FDS命令行工具

安装

FDS的命令行工具是跟随python sdk一起发布的,所以需要通过安装python sdk的方式来安装命令行工具。

安装方式: sudo pip install galaxy-fds-sdk

命令行简介

FDS提供了两种命令行工具:fdsfdscli。其中fds命令是较为底层的命令,可以进行更为细节的操作,也较为复杂。 fdscli命令提供了更高级别的接口,使用更方便,但是控制粒度小。用户可以根据自己的需求选择。

前提准备

$HOME/.config/xiaomi/config文件中,加入如下信息:

{
...
"xiaomi_access_key_id":"ACCESS_KEY",
"xiaomi_secret_access_key":"SECRET_KEY",
"xiaomi_fds_endpoint":"END_POINT"
, ...
}

fds命令

fds命令文档,可以通过在命令行中输入fds --help查看,帮助和例子非常详细。

fds命令举例说明:

  1. 物理删除数据命令:

    /my-bucket/a/a1.txt

    /my-bucket/a/a2.txt

    /my-bucket/a/aa/aa1.txt

    单个文件物理删除:fds --ak=xxx --sk=xxx -e=xxx -m delete -b my-bucket -o my-object --disable_trash

    物理删除a1.txt:fds --ak=xxx --sk=xxx -e=xxx -m delete -b my-bucket -o "a/a1.txt" --disable_trash

    批量文件物理删除:fds --ak=xxx --sk=xxx -e=xxx -m delete -b my-bucket --object_prefix=xxx --disable_trash

    物理删除a目录下的文件:fds --ak=xxx --sk=xxx -e=xxx -m delete -b my-bucket --object_prefix="a/" --disable_trash

    注意如果删除时未使用–disable_trash,数据文件会进入trash,这时只能等清理trash的程序运行时才能被物理删除

  2. 下载目录命令:

    /my-bucket/a/a1.txt

    /my-bucket/a/a2.txt

    /my-bucket/a/aa/aa1.txt

    下载目录a下的文件,保存到当前目录download下:fds --ak=xxx --sk=xxx -e=xxx -m get -b my-bucket -P "a/" -D "./download"

    递归下载目录a下的文件,保存到当前目录download下:fds --ak=xxx --sk=xxx -e=xxx -m get -b my-bucket -P "a/" -D "./download" -R

    下载my-bucket下的所有文件,保存到当前目录download下:fds --ak=xxx --sk=xxx -e=xxx -m get -b my-bucket -P "/" -D "./download" -R

fdscli命令

fdscli命令行提供与aws s3类似的交互方式,主要是access, config, info, presigned, set-public, show-ttl, rb, mb, rm, ls, cp, sync 12个子命令。用户可以通过fdscli命令获取所有子命令名称,同时可以通过fdscli+子命令名称的方式,获取每个子命令具体使用方式.

Usage: fdscli [OPTIONS] COMMAND [ARGS]...

Options:
  --ak TEXT            Access Key ID
  --sk TEXT            Access Key Secret
  --endpoint TEXT      FDS Endpoint
  --cdn_download       Whether to download using cdn
  --https              Whether to download using https
  --timeout INTEGER    Client Timeout
  --part_size INTEGER  Part size when multipart uploading
  --help               Show this message and exit.

Commands:
  access      set the accessibility of resource
  config      config ak, sk, endpoint and so on
  cp          cp command do lots of things.
  info        display the configurations
  ls          list all buckets or objects in a bucket
  mb          create(make) a bucket
  presigned   presigned command generates presigned url for download project
  rb          delete(remove) a bucket
  rm          delete(remove) a object
  set-public  set the resource of fds public or not
  show-ttl    ttl command shows the lifecycle information of a bucket or a...
  sync        sync command syncs between (local directory and fds) (fds and...
>>> fdscli rb --help                       
Usage: fdscli rb [OPTIONS] FDS_URL

  delete(remove) a bucket

Options:
  -f, --force  Delete bucket although it is nonempty
  --help       Show this message and exit.

IMPORTANT: 在fdscli命令中,通过fds://开头表示FDS远程资源,例如fds://bucket_name/home/a.txt则表示,bucket name为bucket_name, object name是home/a.txt的资源。 在cp命令中,通过 fdscli cp a.txt fds://bucket_name/home/ 命令实现文件上传,通过fdscli cp fds://bucket_name/home/a.txt a.txt实现文件下载,通过fdscli cp fds://bucket_name/home/a.txt fds://bucket_name/home/b.txt实现CopyObject。

fdscli in docker

docker run -it -v "$(pwd):/data" cr.d.xiaomi.net/fds-public/fdscli:v0.1 --ak xxxxx --sk xxxxxxxxx --endpoint xxxxxxxxxxxxx cp /data/{filename} fds://{bucketname}

其他

请移步galaxy-fds-sdk-python

results matching ""

    No results matching ""