跳转到主要内容

云对象存储实用工具

项目描述

云对象存储CLI

Build Status PyPI release PyPI - Python Version

目录


入门

该实用工具需要Python 3.6或更高版本。

安装

您可以从PyPI或从安装此实用工具。

从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_IDAWS_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>

许可证

Apache-2.0

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。

源分布

cos-utils-0.0.13.tar.gz (13.1 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面