阿里云ossutil安装与使用
概述
ossutil支持通过Windows、Linux和macOS系统以命令行方式管理OSS数据。
下载并安装ossutil
安装包下载:Linux x86 64bit
1.安装ossutil。
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
安装完成后,ossutil会安装到/usr/bin/目录下。
说明
安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。
2.配置ossutil。
2.1输入配置命令。
ossutil config
2.2根据提示设置配置文件路径。
请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。
如果用户设置为其它路径,在使用命令时需要将–config-file选项设置为该路径)
ossutil默认使用/home/user/.ossutilconfig作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c选项指定配置文件。例如配置文件保存为/home/config,使用ls时,命令格式如下:
ossutil ls oss://examplebucket -c /home/config
2.3根据提示设置工具的语言。请输入语言CH或EN。工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。
2.4根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数。关于参数的更多信息如下:
参数 | 参数说明 |
---|---|
endpoint | 填写Bucket所在地域的Endpoint |
accessKeyID | 填写账号的AccessKey |
accessKeySecret | 填写账号的AccessKey |
stsToken | 用STS临时授权账号访问OSS时需要配置该项,否则置空即可 |
命令行选项
除了通过命令配置文件外,还可以使用命令行参数设置相关的配置。命令行选项的优先级要高于命令配置文件。常用命令行选项如下:
选项和说明 | 示例代码 |
---|---|
–loglevel日志级别,默认为空,表示不输出日志文件。取值:info:输出提示信息日志。debug:输出详细信息日志(包括HTTP请求和响应信息) | ossutil64 commandname options --loglevel debug |
–connect-timeout表示客户端连接超时的时间,单位为秒,默认值为120。 | ossutil64 commandname options --connect-timeout 60 |
–read-timeout表示客户端读超时的时间,单位为秒,默认值为1200。 | ossutil64 commandname options --read-timeout 60 |
–retry-times | 当错误发生时的重试次数,默认值为10 |
-e, --endpoint 请求的域名。 | ossutil64 commandname options -e oss-cn-hangzhou.aliyuncs.com |
常用命令
ossutil命令的用法:
名称 | 描述说明 |
---|---|
access-monitor | 配置存储空间(Bucket)的访问跟踪状态 |
appendfromfile | 用于在已上传的追加类型文件(Appendable Object)末尾直接追加内容 |
bucket-cname | 查看Bucket的CNAME配置 |
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命令获取该命令的帮助信息。 |
inventory | 命令用于添加、查询、列举、删除Bucket的清单规则。 |
lifecycle | 命令用于添加、修改、查询、删除生命周期规则配置。 |
listpart | 列出没有完成分片上传的Object的分片信息。 |
logging | 添加、修改、查询、删除Bucket的日志管理配置。 |
lrb | 列举单个或多个地域(Region)下Bucket的基本信息。 |
ls | 列举Bucket、Object和Part。 |
mb | 创建Bucket。 |
mkdir | 在Bucket内创建文件目录。 |
object-tagging | 添加、修改、查询或删除Object的标签配置。 |
probe | 针对OSS访问的检测命令,可用于排查上传、下载过程中因网络故障或基本参数设置错误导致的问题。 |
read-symlink | 读取符号链接(软链接)文件的描述信息。 |
referer | 添加、修改、查询、删除Bucket的防盗链配置。 |
replication | 管理Bucket的跨区域复制规则配置。 |
request-payment | 设置或查询Bucket的请求者付费模式配置。 |
restore | 恢复冷冻状态的Object为可读状态。 |
revert-versioning | 将已删除的Object恢复至最近的版本。 |
rm(删除) | 删除Bucket、Object和Part。 |
set-acl | 设置Bucket或Object的访问权限(ACL)。 |
set-meta | 设置已上传Object的元信息。 |
sign | 用于生成经过签名的文件URL,并将签名URL分享给第三方供其下载或预览。 |
stat | 获取指定Bucket或Object的描述信息。 |
sync简介 | 用于同步本地文件到OSS、同步OSS文件到本地、在OSS之间同步文件。 |
update | 用于更新ossutil版本。 |
website | 用于添加、修改、查询、删除Bucket的静态网站托管配置、重定向配置、镜像回源配置。 |
worm | 管理Bucket的合规保留策略。 |
错误码全解析
203错误
CallbackFailed
Get image info failed
错误原因:OSS未能成功获取到图片信息,该图片可能上传失败或已被删除。
解决方案:
图片上传失败,请调用PutObject接口重新上传。
检查请求的图片是否触发了生命周期配置的删除规则,或者确认其他具有合法权限的用户是否删除了请求的图片。
Too many callback requests
错误原因:OSS正在处理的Callback请求过多。
解决方案:请稍后重试。
Cost too long time
错误原因:回调服务器处理时间超过5秒,OSS将其判断为超时行为。
解决方案:建议回调服务器的处理逻辑修改为异步,保证在5秒内处理完毕并将结果返回OSS。
Response body is not valid json format
错误原因:回调服务器返回给OSS的Body不为JSON格式。
解决方案:请参见上传回调中的常见错误及分析处理进行排查。
Error Status : 400.User server return too long content-length value
错误原因:应用服务器返回OSS的响应中没有携带Content-Length的Header,Body大小超过1 MB。
解决方案:
应用服务器返回OSS的响应中必须携带Content-Length的Header,且Body大小不允许超过1 MB。
例如,如下返回示例中携带了Content-Length的Header,且Body为{“a”:“b”},大小不超过1 MB。
HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.7.6
Date: Mon, 14 Sep 2015 12:37:27 GMT
Content-Type: application/json
Content-Length: 9
{"a":"b"}
Error Status : -1.OSS can not connect to your callbackUrl, please check it
错误原因:OSS无法访问用户的应用服务器。
解决方案:请检查用户的应用服务器是否能正常运行,且与OSS之间的网络通讯是否正常。
Error Status : 400.User server missing content-length
错误原因:应用服务器返回OSS的响应中没有携带Content-Length的Header。
解决方案:应用服务器返回OSS的响应中必须携带Content-Length的Header。
Error Status : 400.User server return invalid content-length value
错误原因:应用服务器返回OSS的响应中没有携带Content-Length的Header,或者Content-Length的值不为正整数。
解决方案:
应用服务器返回OSS的响应中必须携带Content-Length的Header,且Content-Length的值必须为正整数。
例如,如下返回示例中携带了Content-Length的Header,且Content-Length的值为正整数9。
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 12:37:27 GMT
Content-Type: application/json
Content-Length: 9
Connection: keep-alive
ETag: "D8E8FCA2DC0F896FD7CB4CB0031B****"
Server: AliyunOSS
x-oss-bucket-version: 1442231779
x-oss-request-id: 55F6BF87207FB30F2640****
{"a":"b"}