开发者社区> 问答> 正文

osscmd,一条命令上传和下载的python工具

osscmd是基于python 2.5.4(其他版本没有试过),用来操作OSS的,可使用命令行来上传和下载文件。
下载地址: http://storage.aliyun.com/leo/osscmd.tar.gz
使用方法:
1. 下载到某一目录,例如下载到/tmp/ 目录
请先确认机器上安装了python,目前只在2.5.4上测试过。
wget http://storage.aliyun.com/leo/osscmd.tar.gz

2. 解压后会有osscmd和oss目录,
#解压
tar -zxvf osscmd.tar.gz

#查看解压的目录,应该有如下结果
$ ls
oss  osscmd  osscmd.tar.gz

#创建快捷执行方式
vi ~/.bashrc
添加如下
alias osscmd='python /tmp/osscmd'

#让快捷方式生效
source ~/.bashrc
#确认生效
在任意目录敲击osscmd能出现如下内容就表示生效了。

$ osscmd
osscmd:
    getallbucket(gs)
    createbucket(cb,mb,pb) bucket --acl=[acl]
    deletebucket(db) bucket
    deletewholebucket bucket
    getacl bucket
    setacl bucket --acl=[acl]
        allow private, public-read, public-read-write
    ls(list) oss://bucket/[prefix] [marker] [delimiter] [maxkeys]
    listallobject oss://bucket/[prefix]
    deleteallobject oss://bucket/[prefix]
    downloadallobject oss://bucket/[prefix] localdir
    put localfile oss://bucket/object --content-type=[content_type] --headers="key1:value1, key2:value2"
    upload localfile oss://bucket/object --content-type=[content_type]
    get oss://bucket/object localfile
    cat oss://bucket/object
    meta oss://bucket/object
    copy oss://source_bucket/source_object oss://target_bucket/target_object --headers="key1:value1, key2:value2"
    rm(delete,del) oss://bucket/object
    signurl(sign) oss://bucket/object --timeout=[timeout_seconds]
    init oss://bucket/object
    uploadpartfromstring(upfs) oss://bucket/object --upload_id=xxx --part_number=xxx --data=xxx
    listpart oss://bucket/object --upload_id=xxx
    listparts oss://bucket
    multiupload(multi_upload,mp) localfile oss://bucket/object
    multiupload(multi_upload,mp) localfile oss://bucket/object --upload_id=xxx --thread_num=10 --max_part_num=1000

    config --id=[accessid] --key=[accesskey]

3. 配置id和key
先用osscmd config --id=xxxx --key=xxx来配置id和key
不知道什么是id和key?不知道id和key是什么?请参考
http://help.aliyun.com/manual?helpId=786

4. 创建bucket 这里以myfirstbucket为例,由于bucket必须是唯一的,所以在创建bucket的时候请输入一个其他名字
对应说明中的命令:
createbucket(cb,mb,pb) bucket --acl=[acl]

#可以这样输入,默认acl(访问控制权限)是私有读写,也就是private
osscmd cb myfirstbucket 或者输入osscmd createbucket myfirstbucket --acl=private
#查看acl
osscmd getacl myfirstbucket

5. 查看创建的bucket
osscmd gs 或者 osscmd getallbucket
#如果成功则可以看见
2012-06-30 03:32 myfirstbucket

6. 上传文件
#例如上传本地的jpg到OSS上
$ osscmd put nvshen.jpg oss://myfirstbucket/mytestfolder/test.jpg
100%  Object URL is: http://storage.aliyun.com/myfirstbucket/mytestfolder/test.jpg
Object abstract path is: oss://myfirstbucket/mytestfolder/test.jpg
ETag is "178F994367F196AAFA025F2A7CD7B51C"

#确认object已经上传

$ osscmd ls oss://myfirstbucket
prefix list is:
object list is:
2012-06-30 03:42   35KB oss://myfirstbucket/mytestfolder/test.jpg
prefix list number is: 0
object list number is: 1

7. 下载文件,请注意

get oss://bucket/object localfile
#实际输入
osscmd get oss://myfirstbucket/mytestfolder/test.jpg test.jpg

其他的命令和这些类似
需要注意的是deleteallobject oss://bucket/[prefix] 这个删除命令需要慎重,请先用在不重要的bucket,确认这个命令和你想象的一样。

欢迎各种吐槽,各种拍砖。

展开
收起
wood23 2012-06-30 12:08:18 43285 0
6 条回答
写回答
取消 提交回答
  • 好无用的答案

    2020-03-01 16:19:26
    赞同 展开评论 打赏
  • Reosscmd,一条命令上传和下载的python工具
    使用简单 很赞~
    2016-11-14 14:31:23
    赞同 展开评论 打赏
  • 多看看 学学别人
    Reosscmd,一条命令上传和下载的python工具
    要是在关闭终端的情况下 通过命令看到执行进度就好了
    2016-08-24 20:21:36
    赞同 展开评论 打赏
  • 回2楼云中之云的帖子
    OSS所有对象都是object, 如上传两个object: 名字叫: A/B, A/C 就看起来有个文件夹名字叫A了。    控制台就是这样处理显示出文件夹的。
    2013-02-05 15:30:00
    赞同 展开评论 打赏
  • Reosscmd,一条命令上传和下载的python工具
    请问怎样上传文件夹
    2013-01-31 16:53:40
    赞同 展开评论 打赏
  • Reosscmd,一条命令上传和下载的python工具
    试过后才知道这个api有多强大!用起来舒服,佩服。
    2012-07-10 16:59:05
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载