s3cmd详解

简介: s3cmd详解

文章目录

1. 安装

1.1 tar包安装

下载:

https://github.com/s3tools/s3cmd/releases

wget https://github.com/s3tools/s3cmd/releases/download/v2.0.2/s3cmd-2.0.2.tar.gz
tar -xvf s3cmd-2.0.2.tar.gz
cd  s3cmd-2.0.2
python setup.py install

注意:

常见依赖工具:

pip install python-dateutil
pip install setuptools

1.2 pip安装

pip3 install s3cmd

2. 配置与文件处理

1.配置Access Key ID 和 Secret Access Key
 $ s3cmd --configure
2.列举所有的Buckets
$ s3cmd ls
3.创建 bucket,且 bucket 名称是唯一的,不能重复。
$ s3cmd mb s3://my-bucket-name
4.删除空 bucket
$ s3cmd rb s3://my-bucket-name
5.列举 Bucket 中的内容
$ s3cmd ls s3://my-bucket-name
6.上传 file.txt 到某个 bucket
$ s3cmd put file.txt s3://my-bucket-name/file.txt
7.上传并将权限设置为所有人可读
$ s3cmd put --acl-public file.txt s3://my-bucket-name/file.txt
8.批量上传文件
$ s3cmd put ./* s3://my-bucket-name/
9.下载文件
$ s3cmd get s3://my-bucket-name/file.txt file.txt
10.批量下载
$ s3cmd get s3://my-bucket-name/* ./
11.删除文件
$ s3cmd del s3://my-bucket-name/file.txt
12.来获得对应的bucket所占用的空间大小
$ s3cmd du -H s3://my-bucket-name

3. 文件夹处理规则

带"/"斜杠的 dir1,相当于上传yh目录下的所有文件,即类似 "cp ./* "

$ s3cmd put -r yh s3://yaohong-bucket
  upload: 'yh/1' -> 's3://yaohong-bucket/yh/1' [1 of 4]
  0 of 0 0% in 0s 0.00 B/s done
  upload: 'yh/2' -> 's3://yaohong-bucket/yh/2' [2 of 4]
  0 of 0 0% in 0s 0.00 B/s done
  upload: 'yh/3.py' -> 's3://yaohong-bucket/yh/3.py' [3 of 4]
  0 of 0 0% in 0s 0.00 B/s done
  upload: 'yh/3.sh' -> 's3://yaohong-bucket/yh/3.sh' [4 of 4]
  0 of 0 0% in 0s 0.00 B/s done

4. sync同步方法

1.同步当前目录下所有文件

$ s3cmd sync  ./  s3://yaohong-bucket/

2.加 "–dry-run"参数后,仅列出需要同步的项目,不实际进行同步。

$ s3cmd sync  --dry-run ./  s3://my-bucket-name/

3.加 " --delete-removed"参数后,会删除本地不存在的文件。

$ s3cmd sync  --delete-removed ./  s3://my-bucket-name/

4.加 " --skip-existing"参数后,不进行MD5校验,直接跳过本地已存在的文件。

$ s3cmd sync  --skip-existing ./  s3://my-bucket-name/

5. 高级同步

排除、包含规则(–exclude 、–include)
file1-1.txt被排除,file2-2.txt同样是txt格式却能被包含

$ s3cmd sync --dry-run --exclude '*.txt' --include 'dir2/*' ./  s3://my-bucket-name/
exclude: dir1/file1-1.txt
upload: ./dir2/file2-2.txt -> s3://my-bucket-name/dir2/file2-2.txt

从文件中载入排除或包含规则。(–exclude-from、–include-from)

$ s3cmd sync  --exclude-from pictures.exclude ./  s3://my-bucket-name/

排除或包含规则支持正则表达式

–rexclude 、–rinclude、–rexclude-from、–rinclude-from

6. 报错

# s3cmd mb s3://czsss-xxxx
ERROR: [Errno -2] Name or service not known
ERROR: Connection Error: Error resolving a server hostname.
Please check the servers address specified in 'host_base', 'host_bucket', 'cloudfront_host', 'website_endpoint'

缺失配置

s3cmd --configure 生成的配置文件如下

$ cat /root/.s3cfg
access_key = QFBD6HTA7KVCQ4FF0XGT
secret_key = 5yfezCjCiZxK8icwiG3MUWYD54jkU36f9cmEfaRO
host_base = s3-beta5.51wyq.cn:7480
host_bucket = %(bucket)s.s3-beta5.51wyq.cn:7480
simpledb_host = s3-beta5.51wyq.cn:7480
cloudfront_host = s3-beta5.51wyq.cn:7480
website_endpoint = http://%(bucket)s.s3-beta5.51wyq.cn:7480/
相关文章
|
Kubernetes Linux Shell
k8s教程(pod篇)-定时任务
k8s教程(pod篇)-定时任务
1319 1
|
存储 文件存储 对象存储
S3存储服务间数据同步工具Rclone迁移教程
目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。
S3存储服务间数据同步工具Rclone迁移教程
|
存储 Kubernetes 调度
如何驱逐某个节点上到某些名称空间的pod到其他节点
在 Kubernetes (k8s) 中,驱逐某个节点上特定命名空间的 Pod 到其他节点可以通过以下步骤实现: ### 步骤一:找到要驱逐的 Pod 首先,你需要找到位于特定命名空间并且运行在目标节点上的 Pod。你可以使用 `kubectl get pods` 命令并指定 `-o wide` 和 `--namespace` 参数来获取这些信息。 ```bash kubectl get pods -o wide --namespace=<your-namespace> ``` 此命令将返回指定命名空间中的所有 Pod,并显示它们的详细信息,包括所在的节点名称。 ### 步骤二:标记
1761 4
|
KVM 虚拟化
virsh的日常管理命令
文章介绍了如何使用virsh命令来管理KVM虚拟机,包括创建、查看、关闭、启动、强制关机、重启、备份、删除、恢复、修改名称、挂起、恢复挂起、查询VNC端口号、设置开机自启动和禁用开机自启动等操作,以及如何配置KVM的console来替代VNC连接虚拟机。
2158 2
virsh的日常管理命令
|
数据安全/隐私保护
s3cmd安装及使用
s3cmd安装及使用
|
存储 开发工具 git
TortoiseSVN迁移到本地git
通过上述步骤,您可以将项目从TortoiseSVN迁移到本地Git仓库。这一过程包括从SVN仓库检出代码、使用 `git-svn`转换为Git仓库、优化Git仓库以及将本地仓库推送到远程Git仓库。以下是思维导图示例,帮助您更好地理解迁移过程。
1293 27
|
存储 缓存 NoSQL
DeepSeek 3FS解读与源码分析(4):Meta Service解读
在当今数字化时代,随着数据量的爆炸性增长,分布式文件系统已成为处理大规模数据存储和访问的核心技术之一。DeepSeek 开源的 3FS(Fire-Fly File System)作为一款高性能、高可用的分布式文件系统,凭借其创新的设计和强大的功能,吸引了众多开发者的关注。其中,Meta Service 作为 3FS 的核心组件之一,承担着元数据管理的关键职责,是整个文件系统高效运行的基石。 在本文中,我们将深入探讨 3FS 中 Meta Service 的架构设计、关键特性以及其实现机制。
|
存储 对象存储 Swift
Ceph Reef(18.2.X)之对象访问策略配置
这篇文章讲述了对象存储的多种访问方式,包括HTTP、S3cmd、Swift和Python程序访问,并介绍了如何定制存储桶的访问策略和跨域规则。
542 8
Ceph Reef(18.2.X)之对象访问策略配置
|
存储 安全 Linux
s3fs挂载S3对象桶
s3fs(Simple Storage Service File System)是一个基于FUSE(Filesystem in Userspace)的文件系统,它允许将S3(Simple Storage Service)或其他兼容S3 API的对象存储服务挂载到本地文件系统中,从而能够像访问本地磁盘一样访问远程对象存储。以下是通过s3fs挂载OBS(Object Storage Service,对象存储服务,这里以华为云OBS为例)对象桶的基本步骤: ### 一、环境准备 1. **安装s3fs**: - 对于CentOS系统,可以使用yum安装s3fs-fuse: ```
3694 7
|
网络安全
ceph的mgr组件模块dashboard图形化管理ceph集群
关于如何通过Ceph的mgr组件模块dashboard来图形化管理Ceph集群的教程,包括基于HTTP和HTTPS的配置步骤。
1490 3

热门文章

最新文章