开发者社区> 问答> 正文

osscmd-使用示例



安装配置osscmd


在Linux或者Windows上下载SDK安装包后,解压缩后就可以使用 osscmd了。
使用时直接调用python osscmd即可获取相应的说明。每种命令有两种执行模式。以查询用户所创建的bucket为例子。执行的是gs命令,get service的简写。

  • 方法1:不指定ID和KEY,osscmd从默认文件中读取ID和KEY。$ python osscmd gs
  • can't get accessid/accesskey, setup use : config --id=accessid --key=accesskey


[backcolor=transparent]注意:如果出现这样的提示表明没有配置好ID和KEY,见步骤2中提示的配置命令。

如果配置好ID和KEY,并且ID和KEY有效,执行 $ python osscmd gs
2013-07-19 08:11 test-oss-sample
Bucket Number is:  1

  • 方法2:直接在命令中指定ID和KEY,osscmd从命令行中读取ID和KEY。如果ID和KEY有效,执行后会得之后的结果。$ python osscmd gs --id=your_id --key=your_key --host=your_endpoint
  • 2013-07-19 08:11 test-oss-sample
  • Bucket Number is:  1


如果要配置用户的ID和KEY到默认的文件中,请运行如下命令用来配置访问OSS所需要的ID和KEY。默认的OSS HOST为oss.aliyuncs.com。 $python osscmd config --id=your_id --key=your_key --host=your_endpoint

如果出现类似“Your configuration is saved into ”的提示表明ID和KEY已经保存成功了。

基础操作


[backcolor=transparent]列出创建的bucket $python osscmd getallbucket

如果是刚刚使用OSS的用户因为没有创建bucket,输出是空
[backcolor=transparent]创建bucket
创建一个Bucket名字为mybucketname的bucket。 $python osscmd createbucket mybucketname

创建“mybucketname”的bucket,有可能不成功。因为OSS中的bucket名字是全局唯一的,并且有人已经创建了这个bucket。这个时候需要换一个名字。例如在bucket名字中加入特定的日期。
[backcolor=transparent]查看是否创建成功 $python osscmd getallbucket

如果没有成功请检查osscmd返回的错误信息。
[backcolor=transparent]查看Object
成功创建bucket后,查看bucket中有哪些object。 $python osscmd list oss://mybucketname/

由于bucket中还没有object,输出是空的。
[backcolor=transparent]上传object 向bucket中上传一个object。假如本地文件名叫local_existed_file,其MD5值如下所示。

$ md5sum local_existed_file 7625e1adc3a4b129763d580ca0a78e44 local_existed_file
$ python osscmd put local_existed_file oss://mybucketname/test_object


[backcolor=transparent]提示: md5sum 为 Linux 命令, Windows 下无此命令。

[backcolor=transparent]再次查看Object
如果创建成功,再次查看bucket中有哪些object。 $python osscmd list oss://mybucketname/

[backcolor=transparent]下载object
从bucket中下载object到本地文件,并比对下载的文件的md5值 $ python osscmd get oss://mybucketname/test_object download_file
$ md5sum download_file
7625e1adc3a4b129763d580ca0a78e44  download_file


[backcolor=transparent]提示: md5sum 为 Linux 命令, Windows 下无此命令。

[backcolor=transparent]删除object $ python osscmd delete oss://mybucketname/test_object

[backcolor=transparent]删除bucket

[backcolor=transparent]注意:如果bucket中还有object的话则这个bucket不能被删除。 $ python osscmd deletebucket mybucketname


使用lifecycle


[backcolor=transparent]配置一个lifecycle的xml格式的文本文件 <LifecycleConfiguration>
    <Rule>
        <ID>1125</ID>
        <Prefix>log_backup/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <Days>2</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>


这个表示删除bucket下,以log_backup/ 为前缀的,并且相对当前时间超过2天的object。详细的规则配置可以参考 API文档
[backcolor=transparent]写入lifecycle python osscmd putlifecycle oss://mybucket lifecycle.xml
0.150(s) elapsed


[backcolor=transparent]读取lifecycle python osscmd getlifecycle oss://mybucket
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>1125</ID>
    <Prefix>log_backup/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>2</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>
0.027(s) elapsed


[backcolor=transparent]删除lifecycle python osscmd deletelifecycle oss://mybucket
0.139(s) elapsed


[backcolor=transparent]读取lifecyle python osscmd getlifecycle oss://mybucket
Error Headers:
[('content-length', '288'), ('server', 'AliyunOSS'), ('connection', 'close'), ('x-oss-request-id', '54C74FEE5D7F6B24E5042630'), ('date', 'Tue, 27 Jan 2015 08:44:30 GMT'), ('content-type', 'application/xml')]
Error Body:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <BucketName>mybucket</BucketName>
  <Code>NoSuchLifecycle</Code>
  <Message>No Row found in Lifecycle Table.</Message>
  <RequestId>54C74FEE5D7F6B24E5042630</RequestId>
  <HostId>mybucket.oss-maque-hz-a.alibaba.net</HostId>
</Error>
Error Status:
404
getlifecycle Failed!



防盗链设置


[backcolor=transparent]允许空referer访问 $osscmd putreferer oss://test --allow_empty_referer=true
0.004(s) elapsed


[backcolor=transparent]获取设置的referer $osscmd getreferer oss://test
<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
  <AllowEmptyReferer>true</AllowEmptyReferer>
  <RefererList />
</RefererConfiguration>


[backcolor=transparent]不允许空referer,只允许referer为test的请求 $osscmd putreferer oss://test --allow_empty_referer=false --referer='www.test.com'
0.092(s) elapsed

[backcolor=transparent] [font="]获取设置的referer
[backcolor=transparent] $osscmd getreferer oss://test
<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
  <AllowEmptyReferer>false</AllowEmptyReferer>
  <RefererList>
    <Referer>www.test.com</Referer>
  </RefererList>
</RefererConfiguration>


[backcolor=transparent]不允许空referer,只允许referer为test和test1的请求 $osscmd putreferer oss://test --allow_empty_referer=false --referer='www.test.com,www.test1.com'

[backcolor=transparent]获取设置的referer $osscmd getreferer oss://test
<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
  <AllowEmptyReferer>false</AllowEmptyReferer>
  <RefererList>
    <Referer>www.test.com</Referer>
    <Referer>www.test1.com</Referer>
  </RefererList>
</RefererConfiguration>



使用logging


[backcolor=transparent]设置logging
  1. $osscmd putlogging oss://mybucket oss://myloggingbucket/mb



[backcolor=transparent]获取设置的logging $osscmd getlogging oss://mybucket

展开
收起
青衫无名 2017-10-23 13:53:39 4813 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载