写博客的时候,我们经常要贴图片链接
其中七牛云算是用的比较多的服务器,目前正常10G以内不要钱。
这里就讲一下,如何把图片直接变成可以Markdown的链接
获取关键字
代码里面,有4个关键词是需要手动填写的,我们首先获取这些信息
- access_key
- secret_key
- bucket_name
- bucket_url
登入七牛云
点击“密钥管理”
AK
就是access_key
SK
就是secret_key
bucket_name
就是你设置的储存空间
bucket_url
就是默认域名
比如我是:
bucket_name = 'yangyang0126'
bucket_url = 'pxpfco2u1.bkt.clouddn.com'
关于域名,最好大家先提前转到自己的域名上面去,不然后面,这些图片链接还要重新改。转的时候,不要用 www.****.com
这种域名,会和你配置的网站冲突。可以设置一个二级域名。比如cdn.****.com
。
完整代码
先安装七牛云的库
pip install qiniu
然后新建.py
文件,把代码贴进去。记得把上面的那几个参数改了。
#! /usr/bin/python
#-*- coding: utf-8 -*-
from qiniu import Auth, put_file, etag, urlsafe_base64_encode
import qiniu.config
from qiniu import BucketManager
import sys,time
import os
import msvcrt
import subprocess
from datetime import datetime
# you will get md_url in this file
result_file = "ss.txt"
if os.path.exists(result_file):
os.remove(result_file)
os.chdir(sys.path[0])
access_key = '********'
secret_key = '********'
bucket_name = '********'
bucket_url = '********'
md_url_result = "md_url.txt" # 链接保存的位置
img_suffix = ["jpg", "jpeg", "png", "bmp", "gif"]
def upload_img(bucket_name,file_name,file_path):
# generate token
token = q.upload_token(bucket_name, file_name, 3600)
info = put_file(token, file_name, file_path)
# delete local imgFile
# os.remove(file_path)
return
def get_img_url(bucket_url,file_name):
# date=datetime.now().strftime('%Y%m%d_%H%M%S')
# file_names = file_name+'?'+date
img_url = 'http://%s/%s' % (bucket_url,file_name)
# generate md_url
md_url = "![%s](%s)\n" % (file_name, img_url)
return md_url
def save_to_txt(bucket_url,file_name):
url_before_save = get_img_url(bucket_url,file_name)
# save to clipBoard
addToClipBoard(url_before_save)
# save md_url to txt
with open(md_url_result, "a") as f:
f.write(url_before_save)
return
# save to clipboard
def addToClipBoard(text):
command = 'echo ' + text.strip() + '| clip'
os.system(command)
# get filename of .md in current index
def getMarkName(paths):
f_list=os.listdir(paths)
for i in f_list:
name=os.path.splitext(i)[0]
end=os.path.splitext(i)[1]
if end=='.md':
return name+'_'
return 'markdown'
if __name__ == '__main__':
q = Auth(access_key, secret_key)
bucket = BucketManager(q)
imgs = sys.argv[1:]
for img in imgs:
# name for img with local time
up_filename = getMarkName(os.getcwd().replace('\\','/')) + os.path.split(img)[1]
upload_img(bucket_name,up_filename,img)
save_to_txt(bucket_url,up_filename)
获取链接
代码写好之后,找一个地方,保存下来。然后直接选中你要的图片,往文件上拖。可以同时选中多张,会生成多个链接。
程序运行的时候,你会看到一个黑色的框,等框消失了,程序就运行好了
这时候你会看到生成了一个md_url.txt
文件,打开之后
大功告成,哈哈~
直接贴到文章里面就好啦~
网友评论