ubuntu下使用python实现将截图上传到七牛服务器,并将七牛生成的外部链接添加的剪切板的功能

目的:在使用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='xxx'
 7 secret_key='xxx'
 8 bucket_name='xxx'
 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://xxx.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. 每次在截完图后,需要手动去执行此脚本才可以上传文件

posted @ 2015-12-20 17:45  桦沐  阅读(1108)  评论(0编辑  收藏  举报