目的:在使用markdown来记录文档时,不必每次都将截图存到文档中,只需将图片链接存放到文档中,此时就想到了需要使用云服务器和自动上传文件的功能
OS: Ubuntu 15.10
version 0.1:
工具:截图工具shutter, 剪切板操作工具: xsel
源代码:
1 #!/usr/bin/python 2 import time ##时间模块,使用时间戳生成唯一的文件名 3 import commands ##python中的执行shell命令的模块 4 import os ##同上 5 from qiniu import Auth, put_data ##引入七牛提供的python sdk 6 access_key=‘xxx‘ ##密钥 7 secret_key=‘xxx‘ 8 bucket_name=‘xxx‘ ##空间名 9 10 dirName = ‘/home/stefan/Pictures/‘ ##截图存放的目录 11 fileName = commands.getoutput(‘ls -t ‘+ dirName +‘ | head -1‘); ##获取最新修改的文件名,即最新截图的文件名, ls -t 是以修改时间排序查看文件, head -1是显示第一条记录 12 filePath = dirName+fileName ##需要上传的文件的路径 13 ##上传文件代码参考网上 14 def upload_data(data): ##上传文件操作 15 q = Auth(access_key, secret_key) 16 key = str(int(time.time()*1000)) 17 token = q.upload_token(bucket_name, key); 18 restData, respInfo = put_data(token, key, data) 19 20 return "http://xxx.clouddn.com/"+key ##七牛提供的外部链接的域名,key是文件保存到七牛云服务器上的文件名 21 with open(filePath, ‘rb‘) as f: ##读取文件并上传 22 url = upload_data(f.read()) ##url是外部访问文件链接 23 print(url) 24 os.system(‘echo ‘+url+‘ | xsel -b‘) ##将链接拷贝到剪切板
linux下在终端操作剪切板会用到 xsel 工具
上述功能有几个局限性:
1. 必须保证每次的截图会保存成文件
2. 必须保证每次的截图都存放到同一个目录下
3. 每次在截完图后,需要手动去执行此脚本才可以上传文件
需完善的地方:
1. 直接从剪切板读取文件内容直接上传
2. 截完图后自动执行脚本
version 0.2:
工具:截图工具shutter, 剪切板操作工具: xsel
源代码:
1 #!/usr/bin/python 2 import time 3 import commands 4 import os 5 from qiniu import Auth, put_data 6 access_key=‘1bDBi2aCkA3_RYYabZExqBE1Rw7CwifGAyo87-QU‘ 7 secret_key=‘PpRybbLN79RlDRsvGCC4LX_bMLl5t4ErvVPdMf1d‘ 8 bucket_name=‘dailyrecordphotos‘ 9 10 filePath = commands.getoutput(‘xsel -o -b‘); ##此处做了修改,取剪切板的内容 11 12 def upload_data(data): 13 q = Auth(access_key, secret_key) 14 key = str(int(time.time()*1000)) 15 token = q.upload_token(bucket_name, key); 16 restData, respInfo = put_data(token, key, data) 17 18 return "http://7xpc60.com1.z0.glb.clouddn.com/"+key 19 with open(filePath, ‘rb‘) as f: 20 url = upload_data(f.read()) 21 print(url) 22 os.system(‘echo ‘+url+‘ | xsel -b‘)
改善地方: 首先设置了截图工具shutter的首选项,将保存截图到剪切板改为保存截图的文件名到剪切板, 则每次截图的路径就会保存到剪切板上,在python中直接去取剪切板的内容就能拿到文件路径,而不用查找最新文件,也没有了同一目录的限制
局限性:
1. 如果想将截图发给其他人,此时只能取剪切板的路径下去拿到截图文件,而不能直接通过剪切板来复制粘贴图片
2. 每次在截完图后,需要手动去执行此脚本才可以上传文件
时间: 2024-10-23 06:22:07