【转】gitee 图床因外链访问过多被封,我们该怎么办

本文介绍了作者在gitee图床因外链访问过多被封后,如何选择和配置阿里云OSS作为新的图床,并详细阐述了解封gitee库、迁移图片资源、替换文章内图片链接的过程,提供了一个全面的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全篇转载,原文链接:gitee 图床因外链访问过多被封,我们该怎么办

一、事件起因

今天下午正在思考人生呢,突然收到 gitee 官方发来的邮件

gitee被封

赶忙上网查相关信息,发现 3.25 日 gitee 官网对仓库外链进行了一波清查

好家伙,自己 typora 里有几百篇文章呢,现在全部变成了这种画风

素材2

欣慰的是,优快云 和 公众号上的文章在上传前,会重新拉去一次图片再转存到自己的服务器上,所以受到波及的只有自己的 typora


二、方案选择

固然,gitee 被封了,还有 github 可以选择,但是尝试过用 github 做图片库,上传速度实在感人,故放弃

免费的方案还有微信小程序图床哔哩哔哩图床,但是二者不知道后续经营状况如何,也不知道后续收费情况如何,因为图床最重要的一点就是稳定,故放弃

目前看来,只有各大公司提供的 OSS 服务比较靠谱了,这里最终选择阿里云的 OSS 服务

鉴于我们只需要存储图片,单个图片大小控制在 50kB 以内,以一篇文章50个图片来统计,就算天天写文章,一年流量上行也超不过 1G,所以买 40G 流量包足以

趁着优惠,一口气买了三年,也只要24元

image-20220326183822886

具体的 OSS 购买和配置流程,可以点击下面这个链接观看:

ytpora+picgo+oss配置教程



三、资源替换

在确认配置完 OSS ,并能成功上传后,我们进行接下来的操作


1、解封原 gitee 库

我们需要获取之前的所有图片资源,因为之前每次上传时,都会将图片以时间戳的形式赋予一个唯一名称,这在我们后面换访问连接的时候是至关重要的

但是在仓库被封的情况下,我们是无法去下载的

这个时候就需要声泪俱下的给 gitee 官方写一封信

快的话,大概等一天左右就会解封,这个时候赶快将仓库资源下载下来


2、上床资源到 OSS

下载完成后,我们将文件夹解压并上传到我们的 OSS

上传前必须选择 公共读,不然可能 typora 无法访问

3、单篇文章图片访问路径替换

我们观察一下 gitee 和 oss 上传后返回的图片访问路径,只有指向不同服务器的前缀不一样,所以只要替换这部分就行

我们直接在 typora 中快捷键 commend+f 查找替换即可

image-20220326190147518


4、全文件夹图片访问路径替换

很可惜 ,typora 只支持单篇文章全文替换,整个文件夹文件内容无法直接替换,这里我们自己写个脚本解决

替换前,先将我们当前的 typora 文章库做个备份,避免出现意料之外的结果

素材1

接下来,运行下面这段 java 脚本
运行前别忘了替换 <> 里的内容

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @ClassName ChangePicPath
 * @Description 修改指定文件夹中的所有信息
 * @Author faro_z
 * @Date 2022/3/26 5:18 下午
 * @Version 1.0
 **/
public class ChangePicPath {
    private static String folderName = "<你的文章所在的文件夹的全路径名>";
    private static String from = "<图片访问路径中待替换的部分>";
    private static String to = "<图片访问路径中被替换成的部分>";
    private static List<String> errFileNameList = new ArrayList<>();

    public static void main(String[] args) throws IOException {
        List<String> pathList = getAllFileName(folderName);
        System.out.println("成功获取所有文件名称!");
        System.out.println("第一个文件名称为:"+pathList.get(0));
        // 如果发现文件名称和预期的不一样,别误操作了
        System.out.println("输入任意数字,再按回车键继续...");
        new Scanner(System.in).nextInt();
        int errCount = 0;
        for (String path : pathList) {
            if (!changeFileContent(from,to,path)) {
                errCount++;
            }
        }
        System.out.println("出错文件数为:"+errCount);
        System.out.println("所有出错文件名为:");
        for (String errPath : errFileNameList) {
            System.out.println(errPath);
        }
    }

    /**
     * 获取当前文件夹下所有文件名(不包括文件夹名)
     * @param folderName
     * @return
     */
    private static List<String> getAllFileName(String folderName) {
        ArrayList<String> filePathList = new ArrayList<>();
        dfs(folderName,filePathList);
        return filePathList;
    }

    /**
     * 递归获取文件名
     * @param path
     * @param filePathList
     */
    private static void dfs(String path, List<String>filePathList) {
        File file = new File(path);
        if (file.isFile() && file.getName().endsWith(".md")) {
            filePathList.add(file.getAbsolutePath());
            return;
        }
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File tmpFile : files) {
                dfs(tmpFile.getAbsolutePath(),filePathList);
            }
        }
    }

    private static boolean changeFileContent(String from,String to,String filePath) {
        File file = new File(filePath);
        try {
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            CharArrayWriter tempStream = new CharArrayWriter();

            String line = null;

            while ((line = bufferedReader.readLine()) != null) {
                line = line.replaceAll(from,to);
                tempStream.write(line);
                tempStream.append(System.getProperty("line.separator"));
            }

            bufferedReader.close();
            // 将内存中的流 写入 文件
            FileWriter out = new FileWriter(file);
            tempStream.writeTo(out);
            out.close();
        } catch (IOException e) {
            errFileNameList.add(filePath);
            return false;
        }
        return true;
    }
}

运行结束后,我们再看看之前的文章

可以返发现,已经全部恢复了

恢复


<think>好的,用户想了解如何开始写优快云博客。首先,我需要明确用户的需求,可能是一个刚入门的技术爱好者或者开发者,想要通过优快云分享知识或记录学习过程。接下来,我得考虑步骤的完整性,从注册到发布,每个环节都要覆盖到,但也不能太复杂,让用户容易理解。 首先,注册账号是第一步,可能需要说明通过手机号或第三方平台注册。然后,完善个人资料,这一步很重要,可以增加可信度。接下来是创建博客,可能需要指导用户找到开通博客的入口,可能在个人中心里。 然后是撰写博客,这里要分步骤:进入编辑器、选择分类、使用Markdown或富文本、插入代码和片、标签设置等。同时,要提醒用户注意排版和代码高亮,这些影响阅读体验。发布后的推广和管理也很重要,用户可能不知道如何扩大影响力,需要给出一些建议,比如分享到社交媒体、参与社区互动等。 另,用户可能关心SEO优化,所以得提到标题、关键词和描述的重要性。维护和更新博客也是长期发展的关键,建议定期更新和与读者互动。最后,注意事项部分要包括原创性、遵守规则和备份,避免用户踩坑。 需要确保每个步骤清晰,语言简洁,避免使用专业术语过多,让新手也能轻松跟随。同时,检查是否有遗漏的环节,比如审核机制或者常见问题,可能需要提及。最后,整个流程要符合优快云当前的界面和流程,可能需要确认步骤是否最新,如果有改版可能需要调整说明。</think>以下是开通并运营优快云博客的详细步骤指南: 一、前期准备阶段 1. 注册账号 - 访问优快云官网:https://www.youkuaiyun.com/ - 点击右上角"注册"按钮 - 支持手机号验证码注册/微信扫码注册/GitHub账号绑定 2. 完善个人资料 - 登录后点击右上角头像进入"个人中心" - 上传专业头像(建议使用真实照片或技术相关标) - 填写技术领域标签(如Python/Java/前端等) - 补充个人简介(突出技术专长) 二、博客创建流程 1. 开通博客 - 登录后点击顶部导航栏"创作中心" - 选择"写博客"进入编辑器界面 - 首次使用需完成实名认证(需准备身份证正反面照片) 三、内容创作指南 1. 文章撰写规范 - 标题技巧:`<技术关键词>+核心内容`,示例:`Python爬虫实战:用BeautifulSoup抓取天气数据` - 正文结构建议: $$引言(痛点分析)\\技术原理说明\\实战代码演示\\结果展示\\总结与扩展$$ 2. 代码插入规范 ```python # 使用代码块功能(支持40+语言高亮) def fibonacci(n): a, b = 0, 1 for _ in range(n): yield a a, b = b, a + b ``` 3. 文排版建议 - 片上传:支持本地/URL插入,推荐使用优快云 - 技术解规范: $$流程:Visio/ProcessOn\\架构:Draw.io\\数据表:Excel/Python matplotlib$$ 四、SEO优化技巧 1. 关键词布局 - 标题必须包含主关键词 - 正文前200字重复关键词2-3次 - 使用H2/H3标签包裹技术术语 2. 元数据设置 - 标签设置:3-5个相关技术标签 - 摘要编写:150字内概括核心内容 - 分类选择:精确到三级目录(如:开发语言 > Python > Web开发) 五、运营推广策略 1. 内容分发矩阵 - 同步到优快云社区话题(如#人工智能实践#) - 分享到技术微信群/QQ群 - 制作配套视频上传B站/抖音(需注明原文接) 2. 互动维护建议 - 及时回复评论区提问(建议设置回复模板) - 定期更新系列文章(推荐周更节奏) - 参与优快云原力计划获取流量扶持 六、注意事项 1. 版权声明规范 - 参考案例: $$ \begin{cases} 原创声明 & \text{需通过平台检测} \\ 载授权 & \text{需保留原文出处} \\ 开源协议 & \text{GPL/MIT/Apache等} \end{cases} $$ 2. 数据备份建议 - 本地保存.md源文件 - 定期导出PDF存档 - 使用GitHub/Gitee建立博客镜像仓库 3. 违规红线预警 - 禁止推广非备案 - 杜绝机器翻译内容 - 严禁发布未经验证的代码方案 常见问题解决方案: Q:文章审核未通过怎么办? A:检查是否包含敏感词(可用在线检测工具),确保代码可运行,技术方案有可靠参考文献 Q:如何提升阅读量? A:①参与「优快云热榜」话题 ②优化长尾关键词 ③在技术问答区分享文章接 Q:博客等级如何提升? A:坚持原创更新,获得点赞/收藏/评论,参与官方活动获取积分 进阶建议: 1. 申请博客专家认证(需累计10w+阅读量) 2. 建立专栏整合系列文章 3. 参与年度博客之星评选
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值