老蒋在前文中也有介绍到可视化阿里云对象存储OSS管理工具OSSBrowser,我们就如同在使用FTP工具一样对OSS对象存储文件移动、删除、上传等管理操作。且实际使用中,一般的网站和用户使用OSSBrowser肯定是够用的,但是也有部分网站本地可能有几百兆、甚至几个G的静态文件数据希望同步到OSS中,同时也有可能之前有在使用OSS的时候希望数据备份到本地。那这样的环境中使用OSSBrowser一个个下载或者上传不够现实。
有没有更好的办法呢?比如类似在前文中老蒋有介绍到腾讯云COS有的COSCMD工具,可以实现命令式,多平台的对对象存储文件管理。阿里云肯定也是有的,比如我们可以使用ossutil工具进行批量管理OSS的数据,我们一起看看如何使用的。
第一、ossutil多平台安装
ossuti支持Windows、Linux、 Mac平台,以命令行方式管理OSS数据的工具,提供方便、简洁、丰富的Bucket和Object管理命令。我们可以通过命令的时候对Bucket存储桶文件删除、创建、下载,我们一起看看常用的命令名称。
名称 | 描述 |
---|---|
appendfromfile | 将本地文件内容以追加上传的方式上传到OSS中的appendable Object中。 |
bucket-encryption | 添加、修改、查询、删除Bucket的加密配置。 |
bucket-policy | 添加、修改、查询、删除存储空间(Bucket)的Bucket policy配置。 |
bucket-tagging | 添加、修改、查询、删除Bucket的标签配置。 |
bucket-versioning | 添加或查询Bucket的版本控制配置。 |
cat | 将文件内容输出到ossutil。 |
config | 创建配置文件来存储OSS访问信息。 |
cors | 添加、修改、查询、删除Bucket的CORS配置。 |
cors-options | 用于测试Bucket是否允许指定的跨域访问请求。 |
cp | 用于上传、下载、拷贝文件。 |
create-symlink | 创建符号链接(软链接)。 |
du | 用于获取指定存储空间(Bucket)或者指定文件(Object)/文件目录所占的存储空间大小。 |
getallpartsize | 获取Bucket内所有未完成上传的Multipart任务的每个分片大小以及分片总大小。 |
hash | 用于计算本地文件的CRC64或MD5。 |
help | 获取命令的帮助信息。当您不清楚某个命令的用法时,建议您使用help命令获取该命令的帮助信息。 |
lifecycle | 命令用于添加、修改、查询、删除生命周期规则配置。 |
listpart | 列出没有完成分片上传的Object的分片信息。 |
logging | 添加、修改、查询、删除Bucket的日志管理配置。 |
ls | 列举Bucket、Object和Part。 |
mb | 创建Bucket。 |
mkdir | 在Bucket内创建文件目录。 |
object-tagging | 添加、修改、查询或删除对象(Object)的标签配置。 |
probe | 针对OSS访问的检测命令,可用于排查上传、下载过程中因网络故障或基本参数设置错误导致的问题。 |
read-symlink | 读取符号链接(软链接)文件的描述信息。 |
referer | 添加、修改、查询、删除Bucket的防盗链配置。 |
restore | 恢复冷冻状态的Object为可读状态。 |
request-payment | 设置或查询存储空间(Bucket)的请求者付费模式配置。 |
rm | 删除Bucket、Object和Part。 |
set-acl | 设置Bucket或Object的访问权限(ACL)。 |
set-meta | 设置已上传Object的元信息。 |
sign | 用于生成经过签名的url供第三方用户访问Bucket内的Object。 |
stat | 获取指定Bucket或Object的描述信息。 |
update | 用于更新ossutil版本。 |
website | 用于添加、修改、查询、删除Bucket的静态网站托管配置、重定向配置、镜像回源配置。 |
ossutil 源码地址:
Linux 32位:http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil32?spm=a2c4g.11186623.2.11.4638448aVMck67
Linux 64位:http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil64?spm=a2c4g.11186623.2.12.4638448aVMck67
复制链接的时候,会自动加上spm编码内容,使用wget命令下载的时候,注意删除链接中?spm=xxxx内容。
Windows 32位:http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil32.zip?spm=a2c4g.11186623.2.13.4638448aVMck67&file=ossutil32.zip
Windows 64位:http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil64.zip?spm=a2c4g.11186623.2.14.4638448aVMck67&file=ossutil64.zip
这里我们可以尝试安装在Linux 环境中:
wget http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil64
chmod 755 ossutil64
./ossutil64 config
根据提示我们需要设置ossutil。
endpoint:填写Bucket所在地域的域名信息。
accessKeyID:查看方式请参考创建AccessKey。
accessKeySecret:查看方式请参考创建AccessKey。
stsToken:非必配项,若采用STS临时授权方式访问OSS需要配置该项,否则置空即可。
第二、ossutil 常规应用案例
在上面我们可以在服务器上或者本地配置ossutil,之后我们就可以对OSS进行批量操作,比如我们可以将网站对应目录的文件上传到OSS中,或者是将OSS移动下载到本地。
1、appendfromfile
appendfromfile命令用于将本地文件内容以追加上传的方式上传到OSS中的appendable Object中。
命令格式:
./ossutil appendfromfile local_file_name oss://bucket/object [--meta=meta-value] [--payer requester]
实例演示:
./ossutil appendfromfile /file/test.txt oss://bucket1/test.txt
意思就是我们将/file/test.txt 替换到bucket1/test.txt文件。bucket1 是存储桶名。
2、cp
cp命令用于上传、下载、拷贝文件。
上传格式:
./ossutil cp file_url cloud_url [-r] [-f] [-u] [--enable-symlink-dir] [--disable-all-symlink] [--only-current-dir] [--output-dir=odir] [--bigfile-threshold=size] [--checkpoint-dir=cdir] [--snapshot-path=sdir] [--payer requester]
示范命令:
#上传单个文件:
./ossutil cp a.txt oss://bucket/path
#上传文件夹:
./ossutil cp -r dir oss://bucket/path
下载格式:
./ossutil cp cloud_url file_url [-r] [-f] [-u] [--only-current-dir] [--output-dir=odir] [--bigfile-threshold=size] [--checkpoint-dir=cdir] [--range=x-y] [--payer requester] [--version-id versionId]
示范命令:
#下载单个文件
./ossutil cp oss://my-bucket/path/test1.txt /dir
#下载文件夹
./ossutil cp -r oss://my-bucket/path /dir
拷贝格式:
./ossutil cp cloud_url cloud_url [-r] [-f] [-u] [--only-current-dir] [--output-dir=odir] [--bigfile-threshold=size] [--checkpoint-dir=cdir] [--payer requester] [--version-id versionId]
示范命令:
#拷贝单个文件
./ossutil cp oss://bucket/path1/a oss://bucket/path2/
#拷贝单个文件并重命名
./ossutil cp oss://bucket/path1/a oss://bucket/path2/b
总结,对于OSSUTIL命令行的应用可以参考阿里云官方文档库(https://help.aliyun.com/document_detail/50452.html),这里老蒋仅仅介绍有一款命令行工具可以对OSS文件批量管理。
本文出处:老蒋部落 » 阿里云对象存储命令行工具ossutil 多平台批量管理OSS数据 | 欢迎分享( 公众号:老蒋朋友圈 )