import datetime import os import sys import atexit import imghdr from subprocess import call from os.path import expanduser, exists, basename, getsize
from qiniu import Auth, put_file, etag
def capture(): try: call(['/usr/local/bin/pngpaste', '-v'], stderr=open('/dev/null', 'w')) except OSError: print('please preinstall pngpaste use `brew install pngpaste` before use this script') sys.exit()
file_name = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S.png') file_path = os.path.join('/tmp', file_name) atexit.register(lambda x: os.remove(x) if os.path.exists(x) else None, file_path) save = call(['/usr/local/bin/pngpaste', file_path]) if save == 1: sys.exit() return file_path, file_name
if sys.argv.__len__() == 1: file_path, file_name = capture()
else: file_path = expanduser(sys.argv[-1]) if not exists(file_path): file_path, file_name = capture() else: if imghdr.what(file_path) not in ['jpeg', 'jpg', 'png']: sys.exit('file type error') file_name = basename(file_path)
access_key = '' secret_key = ''
qiniu_URL = ''
q = Auth(access_key, secret_key)
bucket_name = ''
key = file_name
token = q.upload_token(bucket_name, key, 3600)
localfile = file_path
info = put_file(token, key, localfile)
if info: print qiniu_URL + file_name else: print '上传失败!'
|