最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python在七牛云平臺(tái)的應(yīng)用(一)

 更新時(shí)間:2017年12月05日 09:41:16   作者:xlxw  
這篇文章主要介紹了詳解Python在七牛云平臺(tái)的應(yīng)用(一),涉及Python通過(guò)官方庫(kù)對(duì)空間的操作,上傳的步驟,操作方法等相關(guān)內(nèi)容,以及完整的操作代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。

七牛云七牛云是國(guó)內(nèi)領(lǐng)先的企業(yè)級(jí)云服務(wù)商。專(zhuān)注于以數(shù)據(jù)為核心的云計(jì)算業(yè)務(wù),圍繞富媒體場(chǎng)景推出了對(duì)象存儲(chǔ)、融合CDN、容器云、大數(shù)據(jù)、深度學(xué)習(xí)平臺(tái)等產(chǎn)品,并提供一站式視頻云解決方案,同時(shí)打造簡(jiǎn)單,可信賴(lài)的解決方案平臺(tái),幫助企業(yè)快速上云,創(chuàng)造更大的商業(yè)價(jià)值。

以上是官網(wǎng)介紹。

(一)在這里介紹一下Python怎么通過(guò)官方提供的庫(kù)對(duì)自己空間進(jìn)行操作

首先需要注冊(cè)一個(gè)七牛的賬號(hào),并創(chuàng)建一個(gè)Bucket,另外還需要在個(gè)人面板中的密匙中得到AK和SK.之后就能通過(guò)七牛的SDK對(duì)自己的空間進(jìn)行操作了.

本文對(duì)上傳/下載/刪除 三個(gè)操作的方法進(jìn)行說(shuō)明:

1.通過(guò)七牛的開(kāi)發(fā)者中心可以得到相關(guān)的官方文檔

2.可以看到python需要安裝七牛提供的庫(kù),先在cmd中執(zhí)行以下語(yǔ)句:

pip install qiniu

3.之后請(qǐng)到個(gè)人界面得到自己的Accesskey和Secretkey.

4.根據(jù)官方文檔用python寫(xiě)出適合自己的程序

(二)簡(jiǎn)單描述下上傳的步驟

1.接口形式七牛云選擇HTTP協(xié)議作為基準(zhǔn)接口形式

2.上傳接口

用于單文件直傳,如果不用官方的SDK也可以使用multipart/from-data格式組織上傳數(shù)據(jù),可以參考官方文檔

3.上傳請(qǐng)求報(bào)文

上傳的請(qǐng)求主要分成三個(gè)

1)上傳授權(quán)憑證Token用于確認(rèn)上傳者的身份是否能進(jìn)行上傳操作

具體也有格式:<AccessKey>:<EncodedSign>:<EncodedPutPolicy>第二個(gè)第三個(gè)分別是加密簽名和上傳策略,都要經(jīng)過(guò)url-base64加密,上傳策略可以定義各種上傳的參數(shù),具體

的參數(shù)請(qǐng)見(jiàn)官方文檔.

2)文件用于上傳的文件的內(nèi)容

3)文件名

下面就是詳細(xì)的介紹

(三)三個(gè)操作方法

1.上傳,下面代碼:

#上傳
def upload(bucket,path,filename,key):
  token = key.upload_token(bucket, filename, 3600)
  print('正在上傳..')
  reform,inform = put_file(token, filename, path)
  if reform != None:
    print('已經(jīng)成功地將{}->>{}'.format(filename,bucket))
  else:
    print('這里出現(xiàn)了一個(gè)小錯(cuò)誤.')

其中bucket是上傳的空間,path是上傳文件存放的路徑,filename是文件的名字,key提供了對(duì)操作者的身份進(jìn)行了鑒定 token.

2.下載,見(jiàn)下方代碼:

#下載    
def download(url,path):
  r = requests.get(url)
  contenter=r.content
  with open(path,'wb') as filer:
    filer.write(contenter)
    filer.close()
  print("已經(jīng)保存文件到{}".format(path))

因?yàn)檫@里的下載使用的是公共空間,并非是私有的,所以可以直接得到文件的url鏈接,這樣子可以直接通過(guò)requests庫(kù)和操作文件的方法進(jìn)行保存到本地,下載私有空間的方法請(qǐng)見(jiàn)七牛云提

供的方法,這里不做介紹.

3.刪除,見(jiàn)下方代碼:

#刪除
def delete(bucketer,filename,key):
  print('正在刪除..')
  bucket = BucketManager(key)
  reform,fo = bucket.delete(bucketer, filename)
  if reform != None:
    print('已經(jīng)成功地將{}->>X'.format(filename))
  else:
    print('這里出現(xiàn)了一個(gè)小錯(cuò)誤.(可能是空間并沒(méi)有這個(gè)文件)')

這里需要的是bucketer-空間的名字,為了和bucket這個(gè)類(lèi)區(qū)分開(kāi);filename和key和上傳的時(shí)候使用的一樣.

(四)七牛云提供了很多官方的和非官方的一些API,可以很方便的對(duì)存貯在七牛云空間中的文件進(jìn)行操作,這樣子可以使我們的一些工作更加方便和簡(jiǎn)單.在后面幾周我會(huì)對(duì)我使用得七牛云

平臺(tái)上的一些API時(shí)遇到的一些好的和大家進(jìn)行分享.

(五)這里提供一個(gè)我寫(xiě)的上面操作的集合體供各位同學(xué)參考,代碼如下:

#七牛云上傳文件到空間內(nèi).
#請(qǐng)得到自己的secret和access key
#PS本來(lái) AK 和SK 用了getpass庫(kù),但是因?yàn)椴恢С?,所以暫時(shí)屏蔽了.

#import SDK
from qiniu import Auth,put_file,etag,BucketManager
import qiniu.config
from getpass import getpass
import requests

#上傳
def upload(bucket,path,filename,key):
  token = key.upload_token(bucket, filename, 3600)
  print('正在上傳..')
  reform,inform = put_file(token, filename, path)
  if reform != None:
    print('已經(jīng)成功地將{}->>{}'.format(filename,bucket))
  else:
    print('這里出現(xiàn)了一個(gè)小錯(cuò)誤.')

#下載    
def download(url,path):
  r = requests.get(url)
  contenter=r.content
  with open(path,'wb') as filer:
    filer.write(contenter)
    filer.close()
  print("已經(jīng)保存文件到{}".format(path))
#刪除
def delete(bucketer,filename,key):
  print('正在刪除..')
  bucket = BucketManager(key)
  reform,fo = bucket.delete(bucketer, filename)
  if reform != None:
    print('已經(jīng)成功地將{}->>X'.format(filename))
  else:
    print('這里出現(xiàn)了一個(gè)小錯(cuò)誤.(可能是空間并沒(méi)有這個(gè)文件)')

#主體    
def main():
  #填寫(xiě)你的 AK 和 SK
  accesskey = input('請(qǐng)輸入您在七牛云的AccessKey:')
  secretkey = input('請(qǐng)輸入您在七牛云的SecretKey:')

  #鑒定身份
  keyq=Auth(accesskey,secretkey)

  #所要操作的空間
  bucketname =input("請(qǐng)輸入要操作的空間(公開(kāi))名字:")

  #判定操作類(lèi)型
  while 1:
    order=input('請(qǐng)輸入你需要進(jìn)行的操作:')
    mode=order.split(' ')[0]
    if mode == '上傳':
      path=order.split(' ')[1]
      fname=path.split('/')[-1:][0]
      print('正在嘗試生成Token.請(qǐng)稍后..')
      upload(bucketname,path,fname,keyq)
    elif mode == '下載':
      print('正在嘗試生成Token.請(qǐng)稍后..')
      download(order.split(' ')[1],order.split(' ')[2])
    elif mode == '更換':
      if order.split(' ')[1] == '空間':
        bucketname =input("請(qǐng)輸入您想要更改的空間(公開(kāi))名字:")
      elif order.split(' ')[1] == 'AK':
        #accesskey = getpass(prompt= '請(qǐng)輸入新的AK:')
        accesskey = input( '請(qǐng)輸入新的AK:')
      elif order.split(' ')[1] == 'SK':
        #secretkey = getpass('請(qǐng)輸入新的SK:')
        secretkey = input('請(qǐng)輸入新的SK:')
      else:
        print('您輸入的命令有誤')
    elif mode == '刪除':
      print('正在嘗試生成Token.請(qǐng)稍后..')
      delete(bucketname,order.split(' ')[1],keyq)
      
    elif mode =='退出':
      break
    else:
      print('輸入的命令存在錯(cuò)誤')

print('+---------------------------------------------------+')
print('|歡迎使用本Qiniu云的上傳下載程序,以下為使用方法  |')
print('|---------------------------------------------------|')
print('|1.清先輸入您的Accesskey和SecretKey進(jìn)行鑒權(quán)     |')
print('|2.之后請(qǐng)輸入您要進(jìn)行操作的buket空間        |')
print('|3.上傳操作的命令為: 上傳 文件地址(帶后綴)     |')
print('|4.下載操作的命令為: 下載 鏈接地址 本地路徑帶后綴) |')
print('|5.刪除操作的命令為: 刪除 空間中的文件名稱(chēng)     |')
print('|6.更換bucket操作為: 更換 空間名          |')
print('|7.更換AKSK的操作為: 更換 AK/SK           |')
print('|8.退出程序的操作為: 退出              |')
print('+---------------------------------------------------+')
main()

具體的使用效果如下:

總結(jié)

以上就是本文關(guān)于詳解Python在七牛云平臺(tái)的應(yīng)用(一)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Python批量創(chuàng)建迅雷任務(wù)及創(chuàng)建多個(gè)文件

    Python批量創(chuàng)建迅雷任務(wù)及創(chuàng)建多個(gè)文件

    其實(shí)不是真的創(chuàng)建了批量任務(wù),而是用python創(chuàng)建一個(gè)文本文件,每行一個(gè)要下載的鏈接,然后打開(kāi)迅雷,復(fù)制文本文件的內(nèi)容,迅雷監(jiān)測(cè)到剪切板變化,彈出下載全部鏈接的對(duì)話(huà)框
    2016-02-02
  • python解決漢字編碼問(wèn)題:Unicode Decode Error

    python解決漢字編碼問(wèn)題:Unicode Decode Error

    最近在利用python讀取一個(gè)含有漢字的文檔時(shí)導(dǎo)致出現(xiàn)了亂碼,并報(bào)出了兩個(gè)錯(cuò)誤,無(wú)奈只能上網(wǎng)找尋答案,后通過(guò)網(wǎng)友的幫助解決了這個(gè)問(wèn)題,想著總結(jié)一下,下面這篇文章就主要介紹了python如何解決漢字編碼問(wèn)題,有需要的朋友們可以參考借鑒。
    2017-01-01
  • Pygame實(shí)戰(zhàn)練習(xí)之紙牌21點(diǎn)游戲

    Pygame實(shí)戰(zhàn)練習(xí)之紙牌21點(diǎn)游戲

    21點(diǎn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫(xiě)一個(gè)簡(jiǎn)單的21點(diǎn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java及python正則表達(dá)式詳解

    Java及python正則表達(dá)式詳解

    正則表達(dá)式有元字符及不同組合來(lái)構(gòu)成,通過(guò)巧妙的構(gòu)造正則表達(dá)式可以匹配任意字符串,并完成復(fù)雜的字符串處理任務(wù)
    2017-12-12
  • 在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程

    在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程

    這篇文章主要介紹了在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程,UDP編程是Python網(wǎng)絡(luò)編程部分的基礎(chǔ)知識(shí),示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • 解決在Python編輯器pycharm中程序run正常debug錯(cuò)誤的問(wèn)題

    解決在Python編輯器pycharm中程序run正常debug錯(cuò)誤的問(wèn)題

    今天小編就為大家分享一篇解決在Python編輯器pycharm中程序run正常debug錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 關(guān)于Numpy之repeat、tile的用法總結(jié)

    關(guān)于Numpy之repeat、tile的用法總結(jié)

    這篇文章主要介紹了關(guān)于Numpy之repeat、tile的用法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python自動(dòng)化之定位方法大殺器xpath

    Python自動(dòng)化之定位方法大殺器xpath

    selenium的幾種定位方法中,大殺器之一就是xpath方法,學(xué)會(huì)它,你將無(wú)所不能.本文就帶大家詳細(xì)了解一下這個(gè)大殺器,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-05-05
  • 使用Python讀寫(xiě)csv文件

    使用Python讀寫(xiě)csv文件

    大家好,本篇文章主要講的是使用Python讀寫(xiě)csv文件,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02
  • python Django模板的使用方法(圖文)

    python Django模板的使用方法(圖文)

    模板通常用于產(chǎn)生HTML,但是Django的模板也能產(chǎn)生任何基于文本格式的文檔。
    2013-11-11

最新評(píng)論

九台市| 赫章县| 隆昌县| 宣化县| 色达县| 南皮县| 噶尔县| 二连浩特市| 静安区| 马关县| 芮城县| 三穗县| 大田县| 承德县| 吴堡县| 青海省| 澳门| 高阳县| 庆城县| 杂多县| 通化县| 峨眉山市| 综艺| 河津市| 喜德县| 东乌珠穆沁旗| 湖口县| 前郭尔| 横峰县| 利川市| 郯城县| 麻城市| 洮南市| 阿勒泰市| 汪清县| 南雄市| 本溪市| 阳泉市| 胶南市| 新化县| 天镇县|