S3.jcloud.sjtu.edu.cn



通过S3cmd实现对象存储资源的创建和使用S3cmd介绍:S3cmd是一款Amazon S3命令行工具。它不仅能上传、下载、同步数据,还能设置访问权限。S3cmd是开源的,在GPLv2许可下分发。本文将介绍如何安装、配置和使用S3cmd来管理您在交大云平台对象存储中的数据。S3cmd安装:方法一:通过RPM库安装在CentOS,RHEL和Ubuntu等系统上,可以简单的执行以下命令进行安装。CentOS / RHEL系统:# yum install s3cmdUbuntu / Debian系统:# wget -O- -q | sudo apt-key add -# wget -O/etc/apt/sources.list.d/s3tools.list apt-get update && sudo apt-get install s3cmd方法二:使用Source安装最新的S3cmd如果使用上述软件包管理器,您没有得到最新的版本,可以使用源代码,在系统上安装最新的s3cmd版本。访问 或者使用下面的命令来下载最新版本的s3cmd。# wget tar xzf s3cmd-2.1.0.tar.gz现在,使用下面的命令对下载的源文件进行安装。# cd s3cmd-2.1.0# sudo python setup.py install安装的过程中有可能会出现“ImportError: No module named setuptools”的错误提示。解决方法:先执行下面的命令,之后再执行安装命令即可。wget??? ez_setup.pys3cmd环境配置:1. 获取AK/SK登录交大云平台:选择并确认需要创建对象存储的项目点击界面左侧的:存储、对象存储条目,进入对象存储管理界面d)点击管理界面左上方的:获取AK/SK 2. 修改s3cmd配置文件:a)在/root目录下,创建.s3cfg文件:# vi /root/.s3cfgb)在.s3cfg 文件中添加如下内容,其中access_key和secret_key分别填入步骤1中获得的AK和SKaccess_key = **********************************b014secret_key = **********************************fdb9host_base = s3.jcloud.sjtu.:443host_bucket = s3.jcloud.sjtu.:443use_https = Truec) 执行s3cmd ls 命令,验证安装及配置是否成功:(由于此时还没有创建任何资源,因此无内容返回) 通过s3cmd命令进行对象存储资源的管理和访问:创建存储桶:(示例桶名:my_bucket )命令:s3cmd mb s3://存储桶名示例:s3cmd mb s3://my_bucket注意:存储桶名是唯一的,不能重复,不能用点号(".")分隔,可以使用下划线查看所有已创建的存储桶:命令:s3cmd ls向指定存储桶上传文件:命令:s3cmd put 文件路径/源文件名 存储桶名示例:s3cmd put /etc/hosts s3://my_bucket向指定存储桶批量上传文件:命令:s3cmd put 文件路径/* s3://存储桶名/示例:s3cmd put /test/* s3://my_bucket查看指定存储桶中的文件:命令:s3cmd ls s3://存储桶名示例:s3cmd ls s3://my_bucket下载指定存储桶中的文件:命令:s3cmd get s3://存储桶名/源文件名 目标文件名示例:s3cmd get s3://my-bucket-name/hosts hosts.txt批量下载指定存储桶中的文件:命令:s3cmd get s3://存储桶名/* 目标路径示例:s3cmd get s3://my_bucket/* ./删除指定存储桶中的文件:命令:s3cmd del s3://存储桶名称/文件名称示例:s3cmd del s3://my_bucket/hosts 删除指定存储桶:命令:s3cmd rb s3://存储桶名称示例:s3cmd rb s3://my_bucket获得指定存储桶所占用的空间大小命令:s3cmd du -H s3://存储桶名示例:s3cmd du -H s3://my_bucket目录处理规则:以下命令都能将dir1 中的文件上传至my-bucket-name,但效果截然不同。dir1 不带"/"斜杠,那么dir1会作为文件路径的一部分,相当于上传整个dir1目录,即类似 "cp -r dir1/"~/demo$ s3cmd put -r dir1 s3://my-bucket-name/dir1/file1-1.txt -> s3://my-bucket-name/dir1/file1-1.txt [1 of 1]带"/"斜杠的 dir1,相当于上传dir1目录下的所有文件,即类似 "cp ./* "~/demo$ s3cmd put -r dir1/ s3://my-bucket-name/dir1/file1-1.txt -> s3://my-bucket-name/file1-1.txt [1 of 1]同步方法这是s3cmd 使用难点,但却是最实用的功能。官方使用说明见《s3cmd sync HowTo》首先明确,同步操作是要进行MD5校验的,只有当文件不同时,才会被传输。常规同步操作同步当前目录下所有文件s3cmd sync ./ s3://my-bucket-name/加 "--dry-run"参数后,仅列出需要同步的项目,不实际进行同步。s3cmd sync --dry-run ./ s3://my-bucket-name/加 " --delete-removed"参数后,若本地不存在但存储桶中存在的文件,会删除存储桶中的文件;若本地存在但存储桶中不存在的文件,则会上传到存储桶中。s3cmd sync --delete-removed ./ s3://my-bucket-name/加 " --skip-existing"参数后,不进行MD5校验,直接跳过本地已存在的文件。s3cmd sync --skip-existing ./ s3://my-bucket-name/高级同步操作排除、包含规则(--exclude 、--include)file1-1.txt被排除,file2-2.txt同样是txt格式却能被包含。~/demo$ s3cmd sync --dry-run --exclude '*.txt' --include 'dir2/*' ./ s3://my-bucket-name/exclude: dir1/file1-1.txtupload: ./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/pictures.exclude 文件内容# Hey, comments are allowed here ;-)*.jpg*.gif排除或包含规则支持正则表达式--rexclude 、--rinclude、--rexclude-from、--rinclude-from ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download