FDS命令行工具

安装

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

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

命令行简介

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

前提准备

$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,点击回车,可以获取fdscli支持的所有子命令,其中sync暂时还未开发,其余的功能正常使用。

>>> fdscli
Type:        FDSCli
String form: <fds.fdscli_cli.FDSCli object at 0x7f766edc36d8>
File:        /usr/local/lib/python3.5/dist-packages/fds/fdscli_cli.py
Docstring:   Advanced fds cli you deserved

Usage:       fdscli 
             fdscli cp
             fdscli ls
             fdscli mb
             fdscli mv
             fdscli presign
             fdscli rb
             fdscli rm
             fdscli sync

Important:重要的一点,在fdscli命令中,许多命令有多重功能,例如fdscli cp及可以实现上传,也可以实现现在,所以,线上的object文件,使用fds://bucketname/objectname的uri形式。

  • fdscli cp可以实现文件上传,文件下载,fds bucket之间的文件复制,文件夹上传,文件夹下载等功能。fdscli cp a.txt fds://bucketname/实现文件上传,fdscli cp fds://bucketname/a.txt a.txt实现下载。
  • fdscli ls可以实现查看bucket,查看object功能
  • fdscli mb可以实现创建bucket功能
  • fdscli mv可以实现文件上传(剪切),文件下载(删除原),fds bucket之间的文件复制(删除原),文件夹上传(删除原),文件夹下载(删除原)等功能,所以尽量避免使用这个命令
  • fdscli presign可以获取object的下载链接
  • fdscli rb可以实现删除bucket功能
  • fdscli rm可以实现删除object功能
  • fdscli sync预计可以实现同步功能,但是还未实现

在命令行中输入fdscli+子命令,可以获取子命令的详细文档,例如下面的fdscli rb命令,fdscli rb fds://bucketname --force可以强制删除一个非空bucket。

>>> fdscli rb
Fire trace:
1. Initial component
2. Instantiated class "FDSCli" (/usr/local/lib/python3.5/dist-packages/fds/fdscli_cli.py:53)
3. Accessed property "rb" (/usr/local/lib/python3.5/dist-packages/fds/fdscli_cli.py:110)
4. ('The function received no value for the required argument:', 'bucket_uri')

Type:        method
String form: <bound method FDSCli.rb of <fds.fdscli_cli.FDSCli object at 0x7f77225af710>>
File:        /usr/local/lib/python3.5/dist-packages/fds/fdscli_cli.py
Line:        110

Usage:       fdscli rb BUCKET_URI [FORCE]
             fdscli rb --bucket-uri BUCKET_URI [--force FORCE]

results matching ""

    No results matching ""