Skip to content

Instantly share code, notes, and snippets.

@ikbear
Created September 12, 2013 07:26
Show Gist options
  • Save ikbear/6533979 to your computer and use it in GitHub Desktop.
Save ikbear/6533979 to your computer and use it in GitHub Desktop.
Qiniu Python SDK Demo
# -*- coding: utf-8 -*-
import os
import sys
import StringIO
# @gist import_io
import qiniu.io
# @endgist
import qiniu.conf
# @gist import_rs
import qiniu.rs
# @endgist
# @gist import_fop
import qiniu.fop
# @endgist
# @gist import_resumable_io
import qiniu.resumable_io as rio
# @endgist
# @gist import_rsf
import qiniu.rsf
# @endgist
bucket_name = None
uptoken = None
key = None
key2 = None
key3 = None
domain = None
pic_key = None
# ----------------------------------------------------------
def setup(access_key, secret_key, bucketname, bucket_domain, pickey):
global bucket_name, uptoken, key, key2, domain, key3, pic_key
qiniu.conf.ACCESS_KEY = access_key
qiniu.conf.SECRET_KEY = secret_key
bucket_name = bucketname
domain = bucket_domain
pic_key = pickey
# @gist uptoken
policy = qiniu.rs.PutPolicy(bucket_name)
policy.returnBody = """{
"name": "$(fname)",
"size": "$(fsize)",
"type": "$(mimeType)",
"hash": "$(etag)",
"w": "$(imageInfo.width)",
"h": "$(imageInfo.height)"
}"""
uptoken = policy.token()
# @endgist
key = "iphone.jpg"
def _setup():
''' 根据环境变量配置信息 '''
access_key = getenv("QINIU_ACCESS_KEY")
if access_key is None:
exit("请配置环境变量 QINIU_ACCESS_KEY")
secret_key = getenv("QINIU_SECRET_KEY")
bucket_name = getenv("QINIU_TEST_BUCKET")
domain = getenv("QINIU_TEST_DOMAIN")
pickey = 'QINIU_UNIT_TEST_PIC'
setup(access_key, secret_key, bucket_name, domain, pickey)
def getenv(name):
env = os.getenv(name)
if env is None:
sys.stderr.write("请配置环境变量 %s\n" % name)
exit(1)
return env
def put_file():
''' 演示上传文件的过程 '''
# 尝试删除
qiniu.rs.Client().delete(bucket_name, key)
# @gist put_file
localfile = "iphone.jpg"
ret, err = qiniu.io.put_file(uptoken, key, localfile)
print ret
if err is not None:
sys.stderr.write('error: %s ' % err)
return
# @endgist
if __name__ == "__main__":
_setup()
put_file()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment