美文网首页编程网赚搭建网站
用Python把图片上传到七牛云

用Python把图片上传到七牛云

作者: 洋阳酱 | 来源:发表于2019-09-25 08:52 被阅读0次

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

    其中七牛云算是用的比较多的服务器,目前正常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文件,打开之后

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

    相关文章

      网友评论

        本文标题:用Python把图片上传到七牛云

        本文链接:https://www.haomeiwen.com/subject/oljiuctx.html