云对象存储实用工具
项目描述
云对象存储CLI
目录
入门
该实用工具需要Python 3.6或更高版本。
安装
从pypi.org安装
$ pip install cos-utils --upgrade
从源代码安装
$ git clone https://github.com/CODAIT/cos-utils.git
$ cd cos-utils
$ pip install .
配置
根据您的云对象存储HMAC凭证设置环境变量AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。
$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
列出云对象存储存储桶
您可以使用生成的控制台脚本在终端窗口中运行列表实用工具
$ list_buckets --help
或明确地
$ python -m cos_utils.list_buckets --help
帮助信息列出了必需和可选参数。
usage: list_buckets [-h] pattern
List buckets in Cloud Object Storage instance.
positional arguments:
pattern Bucket name spec (supported wildcards: * and ?)
optional arguments:
-h, --help show this help message and exit
Environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be
defined to run the utility.
列出所有存储桶
$ list_buckets *
在Linux、Unix和MacOS中,通配符需要转义以防止shell扩展:
list_files <bucket-name> \*
。
应用过滤器
使用通配符*
(任何字符)和?
(一个字符)定义过滤器条件。
例如,要限制输出到以data-
开头的存储桶
$ list_buckets data-*
列出云对象存储存储桶的内容
您可以使用生成的控制台脚本在终端窗口中运行列表实用工具
$ list_files --help
或明确地
$ python -m cos_utils.list_files --help
帮助信息列出了必需和可选参数。
usage: list_files [-h] bucket pattern
List the content of a Cloud Object Storage bucket.
positional arguments:
bucket Bucket name
pattern Object key spec (supported wildcards: * and ?)
optional arguments:
-h, --help show this help message and exit
Environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be
defined to run the utility.
列出<bucket-name>
的内容
$ list_files <bucket-name> *
在Linux、Unix和MacOS中,通配符需要转义以防止shell扩展:
list_files <bucket-name> \*
。
应用过滤器
使用通配符*
(任何字符)和?
(一个字符)定义过滤器条件。
例如,要限制输出到以.png
结尾的文件
$ list_files <bucket-name> *.png
将文件上传到云对象存储存储桶
您可以在终端窗口中运行上传实用工具
$ upload_files --help
或明确地
$ python -m cos_utils.upload_files --help
帮助信息列出了必需和可选参数。以下列出的示例详细解释了它们。
usage: upload_files [-h] [-p PREFIX] [-r] [-s] [-w] bucket pattern
Upload files to a Cloud Object Storage bucket.
positional arguments:
bucket Bucket name
pattern File or directory spec (supported wildcards: * and ?)
optional arguments:
-h, --help show this help message and exit
-p PREFIX, --prefix PREFIX
Key name prefix
-r, --recursive Include files in subdirectories
-s, --squash Exclude subdirectory name from key name
-w, --wipe Clear bucket prior to upload
Environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be
defined to run the utility.
示例场景
</path/to/local/directory>
包含以下目录和文件
file1.png
file2.png
file3.jpg
file4.txt
dir1/file5.gif
dir1/file6.png
dir1/dir2/file7.png
dir1/dir3/file8.jpg
dir1/dir3/file1.png
以下示例中,<bucket-name>
指的是云对象存储中已存在的存储桶。
上传目录
您可以上传任何目录的内容。
将 </path/to/local/directory>
的内容上传到存储桶 <bucket-name>
$ upload_files <bucket-name> </path/to/local/directory>
存储桶 <bucket-name>
包含以下对象
file1.png
file2.png
file3.jpg
file4.txt
与之前相同,但在上传前先清空存储桶
指定可选的 --wipe
参数在上传前清空存储桶。
$ upload_files <bucket-name> </path/to/local/directory> --wipe
存储桶 <bucket-name>
包含以下对象
file1.png
file2.png
file3.jpg
file4.txt
与之前相同,但包含子目录
指定可选的 --recursive
参数包含子目录中的文件。
$ upload_files <bucket-name> </path/to/local/directory> --wipe --recursive
存储桶 <bucket-name>
包含以下对象
file1.png
file2.png
file3.jpg
file4.txt
dir1/file5.gif
dir1/file6.png
dir1/dir2/file7.png
dir1/dir3/file8.jpg
dir1/dir3/file1.png
与之前相同,但在对象键生成期间不使用子目录名称
指定可选的 --squash
参数在对象键生成期间忽略子目录名称。
$ upload_files <bucket-name> </path/to/local/directory> --wipe --recursive --squash
存储桶 <bucket-name>
包含以下对象。注意,</path/to/local/directory>
包含两个名为 file1.png
的文件。首先上传 file1.png
,后来被 dir1/dir3/file1.png
的内容覆盖。
file2.png
file3.jpg
file4.txt
file5.gif
file6.png
file7.png
file8.jpg
file1.png
与之前相同,但包含静态键名前缀
指定可选的 --prefix <prefix>
参数为每个文件的对象键添加 <prefix>
。
$ upload_files <bucket-name> </path/to/local/directory> --wipe --recursive --squash --prefix data
存储桶 <bucket-name>
包含以下对象
data/file2.png
data/file3.jpg
data/file4.txt
data/file5.gif
data/file6.png
data/file7.png
data/file8.jpg
data/file1.png
上传文件
通过指定 </path/to/local/directory/filename>
可以上传单个文件。
$ upload_files <bucket-name> /path/to/local/directory/file1.png --wipe
存储桶 <bucket-name>
包含以下对象
file1.png
可以通过指定模式 </path/to/local/directory/filename-pattern>
上传多个文件。
$ upload_files <bucket-name> /path/to/local/directory/*.png --wipe
在 Linux、Unix 和 MacOS 中,通配符需要转义以防止 shell 展开:
/path/to/local/directory/\*.png
。
存储桶 <bucket-name>
包含以下对象
file1.png
file2.png
使用 --recursive
参数将搜索扩展到 /path/to/local/directory/
的子目录。
$ upload_files <bucket-name> /path/to/local/directory/*.png --wipe --recursive
file1.png
file2.png
dir1/file6.png
dir1/dir2/file7.png
dir1/dir3/file1.png
从云对象存储存储桶下载文件
您可以使用生成的控制台脚本来在终端窗口中运行下载实用程序
$ download_files --help
或明确地
$ python -m cos_utils.dowload_files --help
帮助信息列出了必需和可选参数。以下列出的示例详细解释了它们。
usage: download_files [-h] [-d TARGET_DIR] bucket pattern
Download objects from a Cloud Object Storage bucket.
positional arguments:
bucket Bucket name
pattern Object key spec (supported wildcards: * and ?)
optional arguments:
-h, --help show this help message and exit
-d TARGET_DIR, --target_dir TARGET_DIR
Local target directory. Defaults to the current
directory.
Environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be
defined to run the utility.
下载完整的存储桶内容
您可以将存储桶的完整内容下载到当前目录
$ download_files <bucket-name> *
在 Linux、Unix 和 MacOS 中,通配符需要转义以防止 shell 展开:
download_files <bucket-name> \*
。
与之前相同,但指定目标目录
使用 --target_dir </path/to/local/dir>
参数指定一个现有目录,下载的文件将存储在该目录中
$ download_files <bucket-name> * --target_dir /tmp/downloads
使用通配符有选择地下载文件
使用通配符*
(任何字符)和?
(一个字符)定义过滤器条件。
仅下载 png 文件
$ download_files <bucket-name> *.png
下载文件名中包含特定字符串的文件
$ download_files <bucket-name> *fil*
从云对象存储存储桶删除文件
您可以使用生成的控制台脚本来在终端窗口中运行删除实用程序
$ remove_files --help
或明确地
$ python -m cos_utils.remove_files --help
从存储桶中删除所有文件
$ remove_files <bucket-name>
许可证
项目详情
cos-utils-0.0.13.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0f1019e7bba423943737ff42274179348fbed83b6dc2a3836d0f0c46b151f065 |
|
MD5 | c9559225995c6aa6253fb3c12daffbf5 |
|
BLAKE2b-256 | aa0b0903a9649651fe597018385e37f4dbe9962f0c375d7372658bd6a0f05333 |