编程网赚搭建网站

用Python把图片上传到七牛云

2019-09-25  本文已影响0人  洋阳酱

写博客的时候,我们经常要贴图片链接

其中七牛云算是用的比较多的服务器,目前正常10G以内不要钱。

这里就讲一下,如何把图片直接变成可以Markdown的链接

获取关键字

代码里面,有4个关键词是需要手动填写的,我们首先获取这些信息

登入七牛云

点击“密钥管理”

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文件,打开之后

大功告成,哈哈~
直接贴到文章里面就好啦~

上一篇 下一篇

猜你喜欢

热点阅读