一直想在linux下使用文件同步,但苦于没有合适的客户端工具,本来金山快盘挺好的,,可貌似没有Linux客户端。最近觉得百度的bcs云存储不错,还提供了python sdk,只要稍微写成脚本,在命令行下同步文件还是非常方便的。
1、在百度官方下载python sdk(地址)
或者用wget -c
2、安装:python setup.py install(如果上传大文件,则需安装pycurl)
sudo apt-get install python-pycurl
3、学习官方example.py文件
#!/usr/bin/env python#coding:utf8import osimport loggingimport pybcs #设置日志级别pybcs.init_logging(logging.INFO)# 请修改这里AK = ''#请改为你的AKSK = '' #请改为你的SKBUCKET='' #填写bucket名bcs = pybcs.BCS('', AK, SK, pybcs.HttplibHTTPC) #这里可以显式选择使用的HttpClient, 可以是:#HttplibHTTPC#PyCurlHTTPClst = bcs.list_buckets()print '—————- list of bucket : 'for b in lst:print bprint '—————- list end'#声明一个bucketb = bcs.bucket(BUCKET)#创建bucket (创建后需要在yun.baidu.com 手动调整quota, 否则无法上传下载)#我试了下,貌似不需要调整什么quota#b.create()#获取bucket acl, 内容是jsonprint b.get_acl()['body']#将bucket 设置为公有可读写#b.make_public()#声明一个objecto = b.object('/a.jpg') # a.jpg是云上的文件名称o.put_file('a.jpg')<span style="white-space:pre"></span># 这个a.jpg是本地名称,上传给云上的a.jpg,一般要保证扩展名一致,否则容易乱码o.get_to_file('b.jpg') #b.jpg是下载到本地的文件名#在bcs 上删除.#o.delete()在tools/bcsh.py中,有更方便的操作,以后操作文件就可以用它了。
bcsh.py用法
1、配置AK,SK
用bcsh.py auth -h就知道怎么做了。在~/.bcsh下生成文件可手动更改host,ak,sk
ak,sk可以用linux下的xxd,base64,md5sum,openssl等加密工具加密
2、开始执行bcsh.py
目前支持的子命令有ls,upload,download,rm,cat
参考网址
?p=975
API文档:
百度PCS教程:(说实话,有点乱,BCS,PCS)
人的不幸缘于欲望,所以知足者长乐。