美文网首页python交流学习
Python知道如何管理百度云储存?可能? 不可能?

Python知道如何管理百度云储存?可能? 不可能?

作者: 78c40b03ee4e | 来源:发表于2019-02-20 20:25 被阅读8次

百度云存储(BCS)提供了很强大的存储空间,其官方提供的python SDK相当详细,操作也比较简单,下面简单的说下它的用法,抛砖引玉,大家有什么更好的用途也请赐教

官方使用手册:http://bcs.duapp.com/pcs-doc/bcsh-usage.html

官方SDK文档:http://bcs.duapp.com/pcs-doc/bcs-epydoc/index.html

1.下载 http://peak.telecommunity.com/dist/ez_setup.py 保存, 这个脚本将帮组我们安装 setuptools 运行该脚本,将会安装setuptools

2.安装pycurl, pycurl 可选安装, 如果不安装pycurl, 将默认使用httplib 作为上传下载, 会把文件内容读到内存中, 所以性能较差. 如果文件较大,必须安装pycurl

3.下载pybcs http://bcs.duapp.com/cplat-01/bcs/Baidu-BCS-SDK-Python-1.3.2.zip

4.解压,cmd切换到解压后的目录中,执行 python setup.py install

注意,默认会从pypi的国外站点访问,国内经常访问不了,需要将pypi换到国内的镜像

如果你的%HOMEPATH%\ 下面有pip/pip.ini 文件那么直接编辑,没有的话自已手工添加一个,在里面写入或者修改

[global] 
timeout = 60 
index-url = [http://pipy.douban.com/simple](http://pipy.douban.com/simple)

这个会将到pypi的请求切换到国内的豆瓣镜像,速度相当好,改后再执行 python setup.py install

5.在百度开发者中心中新建一个应用,记下它的api key(AK)与Secret Key(SK)然后点击后创建一个Bucket,官方给的解释是这个bucket相当于一个namespace,这样理解挺好

6.打开baidu-bcs的SDK,里面有一个example.py,这里面的coding是utf8的,windows建议改成gbk的,要不后面有很多乱码的

7.修改里面的AK与SK为你自已的,BUCKET为你刚才创建的

8.其实这个example.py里写的都挺好的,但是我想要仔细地读下它的代码


    bcs 
 
    =
 
     pybcs.BCS(
 
    '
 
    http://bcs.duapp.com/
 
    '
 
    , AK, SK, pybcs.HttplibHTTPC)

   

查看官方sdk文档,class BCS的 init方法要传(self, host, ak, sk, httpclient_class=None)几个参数

方法 list_buckets(self)
列举所有的buckets 将其实保存在一个字典里,下面的for循环将遍历你所创建的所有bucket

9.试着上传一个文件,思路是先确定要上传到哪个bucket,然后再用上传的方法来上传

b = bcs.bucket(BUCKET) ##这里先确定你要上传到哪个bucket

b.create() ##这里将进行创建一个新的bucket,如果没有的话,如果存在的话则会报错

o = b.object('/test2/360doskillupload.php') ##声明一个object,也就是你想要上传文件到的目的地址与文件名

o.put_file('test2/360doskill.php') ##将本地的文件上传上去,
o.delete() ##将这个object也就是云端的文件删除

这个是单个文件的上传与删除,可以拓展一下上传一下本地的目录到BCS上,在BCS上也是保持同样的目录

代码如下

    #  !/usr/bin/env python
 
#  coding:gbk

    import os
  import  logging
import pybcs 
    #设置日志级别

    pybcs.init_logging(logging.INFO)

    #请修改这里

    AK   = ''
 
 #  请改为你的AK
  SK    =  ''
 
             
 
    # 请改为你的SK
 
    BUCKET
 
    =
 
    ''
 
     
 
    #
 
    改为你的bucket
 
    

 
    bcs 
 
    =
 
     pybcs.BCS(
 
    '
 
    http://bcs.duapp.com/
 
    '
 
    , AK, SK, pybcs.HttplibHTTPC)    
 
    #
 
    这里可以显式选择使用的HttpClient, 可以是:
 
    

 
                                                                            
 
    #
 
    HttplibHTTPC
 
    

 
                                                                            
 
    #
 
    PyCurlHTTPC
 
    

 
    def
 
     listFile(path, isDeep
 
    =
 
    True):
    _list 
 
    =
 
     []
    
 
    if
 
     isDeep:
        
 
    try
 
    :
            
 
    for
 
     root, dirs, files 
 
    in
 
     os.walk(path):
                
 
    for
 
     fl 
 
    in
 
     files:                    
                    _list.append(
 
    '
 
    %s\%s
 
    '
 
     
 
    %
 
     (root, fl))
        
 
    except
 
    :
            
 
    pass
 
    
    
 
    else
 
    :
        
 
    for
 
     fn 
 
    in
 
     glob.glob( path 
 
    +
 
     os.sep 
 
    +
 
     
 
    '
 
    *
 
    '
 
     ):
            
 
    if
 
     
 
    not
 
     os.path.isdir(fn):
                _list.append(
 
    '
 
    %s
 
    '
 
     
 
    %
 
     path 
 
    +
 
     os.sep 
 
    +
 
     fn[fn.rfind(
 
    '
 
    \\
 
    '
 
    )
 
    +
 
    1
 
    :])
    
 
    return
 
     _list

b 
 
    =
 
     bcs.bucket(BUCKET)
dir 
 
    =
 
     os.getcwd()
 
    +
 
    '
 
    \\01
 
    '
 
     
 
    #
 
    #取一个和当前脚本同目录下的目录名
 
    

 
    filelist 
 
    =
 
     listFile(dir)

 
    for
 
     i 
 
    in
 
     filelist:
    ic 
 
    =
 
     i.replace(os.getcwd(),
 
    ''
 
    ) 
 
    #
 
    #去掉os.getcwd()前缀
 
        upi 
 
    =
 
     ic.replace(
 
    '
 
    \\
 
    '
 
    ,
 
    '
 
    /
 
    '
 
    ) 
 
    #
 
    #将\替换为/

        o 
 
    =
 
     b.object(upi)
    o.put_file(i)
    

SDK中同样还提供一个bcsh.py的脚本,里面已经集成了很多应用,可以通过调用脚本加参数的形式调用,同样非常方便

小编推荐一个学python的学习qun 740322234
无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

相关文章

  • Python知道如何管理百度云储存?可能? 不可能?

    百度云存储(BCS)提供了很强大的存储空间,其官方提供的python SDK相当详细,操作也比较简单,下面简单的说...

  • Linux下百度云

    Linux下百度云(Python客户端) from my csdn blog转载 百度云Python客户端 byp...

  • 我们本身都是路人,却忘了不必等

    《可能》 词曲:李霄云 演唱:李霄云 我知道这不可能 决不可能 怎么可能呢 你的苦闷我在追问答案总让人心疼 梦境...

  • 你曾经被百度云的限速逼疯过吗?

    随着网盘的不断发展,使用百度云储存、共享文件越来越方便。但是作为一名不常用百度云的用户来说,在需要使用百度云下载大...

  • 挑战不可能

    挑战不可能,既然不可能,如何去挑战。而我想说,人之所以伟大,恰恰是在于,明知道不可能还是要挑战。 图上是央视的“挑...

  • 再也不会丢失的文件—百度网盘

    一、百度网盘的功能 云储存 上传文件 跨终端随时随地查看和分享 播放器 手机找回 笔记功能 二、云储存 注册即有2...

  • 网盘下载速度慢

    Hello 大家好! 百度云盘可是我们储存数据的好地方,但是百度云也被叫做限速云。 不开会员的情况下,你想下载文件...

  • 你一定要具备第二层次思维,为什么?

    我们不可能知道过热的市场何时冷却,也不可能知道市场将如何止跌上涨,不过,虽然我们不知道将来去向哪里,但我们应该知道...

  • 2019黑马python37期(视频+源码)

    2019黑马python37期 百度网盘 百度云下载 教程目录:┣━Python就业班┃ ┣━02 多任务┃ ...

  • 百度云盘收取文件

    百度云盘除了储存/分享,它还是一个的收集工具。 推荐一个「神器」,让你的百度云成为收集文件/资料/信息的利器。 「...

网友评论

    本文标题:Python知道如何管理百度云储存?可能? 不可能?

    本文链接:https://www.haomeiwen.com/subject/lndkyqtx.html