使用七牛接口实现图片和文件一键上传
admin
2023-07-23 12:23:00
0次

本文主要介绍使用七牛提供的接口把七牛云作为图床,用 Python 实现图片上传和文件上传的脚本实现,可以支持按文件夹批量上传。

搭建过网站的同学,一定都涉及到图片上传和文件上传的问题,最近为了弄图片资源接触了一下云存储,还挺挺好用。

之前如果我们把图片资源存储到本机服务器,那就每次写文章的时候都需要准备一堆的图片,并且要上传到对应的相对目录上去,如果用了云存储(不限七牛),好处就是需要的资源直接上传,然后生成一个链接来使用就行了,Markdown 语法对链接的支持也很好,恩,可以搞一下。

不过,又有了新问题,就是是用云存储,得先经过登录->打开对象存储->打开内容管理->上传,然后填入上传后的相对目录,并手动选择本地文件,是不是很麻烦?

所以本次是提供了一个一键上传资源的脚本(仅针对七牛云),实现的效果就是,输入项目目录和文件本地地址后,自动上传所有文件到云端,并生成可使用 URL。

来,直接上代码:

# -*- coding: utf-8 -*-

import os
import sys
from qiniu import Auth, put_file

if 3 != len(sys.argv):
    print('[Usage] %s [dir_set] [filepath]' % os.path.basename(sys.argv[0]))
    sys.exit(0)
else:
    # dir_set 的格式为 image/upload-qiniu/ ,注意末尾带反斜杠/
    dir_set = sys.argv[1]
    file_path = sys.argv[2]

# 个人中心->密匙管理->AK
access_key = '你的AccessKey'
# 个人中心->密匙管理->SK
secret_key = '你的SecretKey'
# 七牛空间名
bucket_name = '你的存储空间名'

qiniu_auth = Auth(access_key, secret_key)

def upload_qiniu(input_path):
    #upload single file to qiniu
    filename = os.path.basename(input_path)
    key = '%s%s' % (dir_set, filename)

    token = qiniu_auth.upload_token(bucket_name, key)
    ret, info = put_file(token, key, input_path, check_crc=True)
    if ret and ret['key'] == key:
        print('%s done' % ('http://www.sylan215.com/' + dir_set + filename))
    else:
        print('%s error' % ('http://www.sylan215.com/' + dir_set + filename))

def upload_all_files(input_path):
    if os.path.isfile(input_path):
        upload_qiniu(input_path)
    elif os.path.isdir(input_path):
        dirlist = os.walk(input_path)
        for root, dirs, files in dirlist:
            for filename in files:
                upload_qiniu(os.path.join(root, filename))
    else:
        print('Please input the exists file path!')

if __name__ == "__main__":
    upload_all_files(file_path)

使用说明

1. 请先安装 qiniu 的依赖库:
python -m pip install qiniu
2. 修改绑定域名

修改代码中的 http://www.sylan215.com 为自己在七牛云存储绑定的域名

3. 带两个参数执行脚本

第一个参数是上传后的目录,第二个参数是文件在本地的地址,支持文件夹。

其中第一个参数的目录格式为:image/test/。

比如如下的命令:

upload_to_qiniu.py image/test/ d:\test.png

运行后,上传后的文件地址就类似:http://www.sylan215.com/image/test/test.png

PS:已使用 Python2.7 和 Python3.4 亲测有效,其他 Python 版本如果有异常,请反馈。

更详细的说明请跳转到项目地址:https://github.com/sylan215/upload-to-qiniu,欢迎大家 star,并一起丰富这个脚本的功能。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...