Editorial Workflows

七牛图床v1.0

public workflow

Install Workflow...

This workflow contains at least one Python script. Only use it if you trust the person who shared this with you, and if you know exactly what it does.

I understand, install the workflow!

This is a workflow for Editorial, a Markdown and plain text editor for iOS. To download it, you need to view this page on a device that has the app installed.

Description: 脚本功能:
1、选择相册图片一键上传至七牛空间。
2、上传成成功后在当前操作文档的光标处以MD语法插入图片外链地址。
3、上传成功后复制图片外链地址到系统剪贴板。
4、为保证上传速度,默认会将原图在不改变分辨率的情况下将图片文件大小缩小一倍。
使用方法:
1、请打开任何一个文档后再运行脚本,不然图片外链地址没地方插入。
2、请自行注册七牛免费空间。
3、请将七牛的相关参数填入变量设置文本框内(value),如不懂python请不要随便修改脚本,以免报错。
by m.wind 2017.4.15

Shared by: m.wind

Comments: Comment Feed (RSS)

There are no comments yet.

+ Add Comment

Workflow Preview
输入七牛空间域名 ?
Variable Name
domain
Value
http://***.bkt.clouddn.com
输入七牛空间名称 ?
Variable Name
cloud_name
Value
输入七牛空间区域上传服务器 ?
Variable Name
url
Value
http://***.qiniu.com
输入七牛AK密匙 ?
Variable Name
ak
Value
输入七牛SK密匙 ?
Variable Name
sk
Value
上传脚本 ?
Source Code
#coding: utf-8
import os
import time
import requests
import console
import hmac
import hashlib
from hashlib import sha1
import requests.auth
import base64
from base64 import urlsafe_b64encode
import json
from PIL import Image,ExifTags
import photos
import clipboard
import workflow
import editor

#获取参数设置变量
ak=str(workflow.get_variable('ak'))
sk=str(workflow.get_variable('sk'))
cloud=str(workflow.get_variable('cloud_name'))
domain=str(workflow.get_variable('domain'))
url=str(workflow.get_variable('url'))
#生成时间戳作为文件名
t=time.time()
filename=str(int(t))+'.jpg'
#选择图片
img=photos.pick_image()
if not img:
	exit()
#修正图片方向
try:
	for orientation, value in ExifTags.TAGS.items():
		if value=='Orientation':
			break
	exif=dict(img._getexif().items())
	rot_degrees={3: 180, 6: 270, 8: 90}.get(exif[orientation], 0)
	if rot_degrees:
		img=img.rotate(rot_degrees, expand=True)
except (AttributeError, KeyError, IndexError):
	pass
img=img.save(filename)
#生成七牛上传凭证
scope=cloud+':'+filename
#超时设置
deadline=int(t)+3600
#编码凭证
data={'scope':scope,'deadline':deadline}
json=json.dumps(data)
encode_json=base64.urlsafe_b64encode(json)
sign=hmac.new(sk,encode_json,sha1).digest()
encode_sign=base64.urlsafe_b64encode(sign)
uptoken=ak+':'+encode_sign+':'+encode_json

#发送上传请求
files = {'file':open(filename,'rb')}
data={'token':uptoken,'key':filename}
r=requests.post(url,data=data,files=files)
status=r.status_code

#结果处理
os.remove(filename)
img_url=domain+'/'+filename
insert_text='!'+'[]'+'('+img_url+')'
if status==200:
#在当前操作文档光标处插入MD语法图片外链,如不需要请注释掉
  editor.insert_text(insert_text)
#复制图片外链地址到系统剪贴板,如不需要请注释掉
  clipboard.set(img_url)
  console.hud_alert('上传成功','success',0.5)
else:
  console.hud_alert('上传失败,请检查设置参数!','error',0.5)