打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
搞定七牛
userphoto

2023.10.23 四川

关注

解决问题的过程,本身也是个学习的过程。

昨天突然发现七牛OSS临时域名失效,然后导致我为知笔记里头前些年写的文章中的图片全部都变成了叉叉,郁闷得不行。

今天中午吃饭的时候突然想,应该想办法把七牛空间中的所有图片下载下来,再找个新的靠谱的存储空间上传上去,然后写个小程序将所有文章中的链接替换成新的图床地址。

搜索了一遍终于有了发现,经过半个小时的摸索,事情基本上解决了一半,5000多张图片基本上应该可以搞到手。东西到手了,基本上事情就好办了,最不济就用人工一张张的替换嘛。

经过在七牛官网搜索发现一个小工具qrsctl,利用这玩意儿的几条命令再配合python实现图片下载。

  • 登陆七牛

进入cmd,利用cd命令进入到qrsctl的当前路径,输入命令:

./qrsctl login 七牛用户名 密码

  • 列出当前所有的空间

利用命令:

./qrsctl buckets

输出结果:

跟我的七牛空间一致,正好有三个空间faee0、blog、image。

我的失效文件都在faee0空间里头。

  • 将所有的图片文件名列表导出来

利用命令:

./qrsctl listprefix faee0 "">1.txt

文件被保存到当前文件路径下的文本文件1.txt中。如下图所示,去掉文件中的第一行数据。

  • 下载文件

利用命令:

./qrsctl get faee0 “空间中的文件名” “保存到本地的文件路径“

  • 准备代码批量下载

代码在linux下写的,逻辑很简单,读取文本文件中的文件名,然后执行外部命令将图片下载下来。

# -*- coding: UTF-8 -*-
import os
def loadData(filepath):
    f  = open(filepath, 'r')
    sourceInLine = f.readlines()
    dataset = []
    for line in sourceInLine:
        temp1 = line.strip('\n')
        dataset.append(temp1)
    return dataset

# 登录七牛,注意替换用户名和密码
os.system('/home/hk/Downloads/pic/qrsctl login username userpassword')
# 将空间faee0中的文件路径写入到文本文件faee0.txt中
os.system('/home/hk/Downloads/pic/qrsctl listprefix faee0 "" > faee0.txt')
infile = '/home/hk/Downloads/pic/faee0.txt'
# 创建文件夹faee0,将下载的图片放到文件夹faee0中
os.system('mkdir faee0')
filelist = loadData(infile)
for file in filelist:
    #防止文件路径中有斜杠,有的话就换成下划线
    if(file.find('/') > 0)
       file = file.replace('/','_')      
    os.system('/home/hk/Downloads/pic/qrsctl get faee0 "' + file + '" ./faee0/' + file)

然后就等着收图片吧。看网速好坏,如果图片很大而网速很慢的话,图片可能会下载失败。

在大企鹅买了个cos存储,感觉大企鹅应该不会像七牛那么小家子气吧。

最近有点儿忙,迷上了深度神经网络,准备拿这玩意儿搞CFD优化。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用MPLAB X IDE v5.00给PIC单片机新建工程
绝对路径与相对路径
如何把本地的图片批量插入Excel单元格中,并且保持图片不变形
善领DSA中如何替换、删除、增加导航地图讲解
FakeApp换脸简易教程
python 导入同级目录文件、上级目录文件以及下级目录数据集和模块包
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服