Ubuntu+PicGo+七牛云图床+Typora搭建笔记神器

在这里插入图片描述

前言,为什么要写这篇文章?

作者使用的ubuntu18.04作为日常开发学习的系统,由于经常使用Typora记录笔记或写文章,其中常使用图片,但Typora仅是保存图片,这就使得文章的可移植性形成很大的阻碍。无意间接触图床,感觉很是方便,于是乎便折腾起图床。但是网上关于Ubuntu系统的此类教程很少,不是模糊不清就是错误百出。因此便记录一下配置的全过程。

1.七牛云免费图床

为什么选择七牛云当做图床?

  1. 使用gitee搭建图床有大小限制,文件超过1M就不能使用外链访问
  2. 使用github 网速太慢
  3. 使用阿里云oss 收费方式太复杂,不过可以考虑
  4. 腾讯云暂时没用过,暂且不说
  5. 微博图床,嗯嗯嗯……听说微博时不时的会有外链检测,图片链接经常失效
  6. 七牛云收费方式比较单一、操作方便、重要的是每个月都有10GB免费容量和流量

1.1注册并登录七牛云

  • 七牛云注册链接:https://portal.qiniu.com/signup(已注册并且认证用户请跳转至1.2章节)

  • 根据官方提示进行身份认证即可(建议认证方式选择支付宝,时间快,几分钟就可完成)

1.2 创建空间

  • 点击新建空间

    image-20210209112237490

  • 给创建的空间命名,相当于房间名称。选择一个存储地区,选择国内的即可,网速几乎没有区别,访问控制一定要选择公开,不然后期无法访问。

  • 点击确定后会出现一个弹窗,简单说就是现在的域名是一个有效期为30天的测试域名,30天后使用本域名的图片外链全部失效!这里先不绑定域名,绑定域名将在下一步进行。点击好的,我知道了

    image-20210209113409653

1.3 创建域名

建议使用二级域名,作者使用的是在阿里云申请并且备案的域名,因此本小节将以阿里云为例。若没有域名,可以使用自己的gitee域名来当做这里的二级域名,网上有很多此类教程,这里不在赘述。

  • 阿里云域名服务链接:https://dc.console.aliyun.com/next/index?spm=5176.2020520101.products-recent.ddomain.70084df5BeTSd9#/domain/list/all-domain

  • 进入后选择解析域名

    image-20210209114838767

  • 添加记录

    image-20210209115018670

  • 记录类型选择CNAME,主机记录就是你的二级域名最开始的那段字符 可自己根据需求填写,解析路线默认即可,记录值暂时填写www.baidu.com,后期需要重新更改,这里仅起到占位作用,其它内容默认即可。

    image-20210209115207172

1.4 绑定域名

  • 回到七牛云的空间管理,找到刚才创建的空间,点击域名

    image-20210209131043461

  • 选择自定义源站域名(有的教程是使用自定义cdn加速域名,然后我实验过后不成功,于是便使用自定义源站域名成功了……),点击绑定域名

    image-20210209131232674

  • 输入刚才在阿里云创建的二级域名,如img.abc.com(即在主机记录+后面的内容)

    image-20210209131825359

  • 点击绑定域名之后会出现图中内容,点击复制CNAME

image-20210209132421762

  • 再回到阿里云域名解析,点击修改刚刚设置的二级域名

    image-20210209133357581

  • 将复制的CNAME粘贴至记录值,替代原先的www.baidu.com

    image-20210209133531987

修改完成后就可以关闭此页面了,初始化大约10分钟,在这期间可以去安装Typora。

2. Typora安装

  • 官网的Typora下载过于缓慢,建议使用国内gitee进行下载(Typora 0.9.84 及以上):https://gitee.com/typora-mirror/Typora-Mirror/releases

  • 下载后解压至本地,然后进入目录Typora-linux-x64/bin/Typora-linux-x64 ,执行以下命令

    ./Typora                                                        
    
  • 然后在应用程序中就可以找到了

3. PicGo配置

3.1 下载PicGo

  • 去github下载PicGo(选择后缀名为.AppImage的):https://github.com/Molunerfinn/PicGo/releases

  • 右键安装包,提取至此处

  • 右键解压后的软件包,选择属性,勾选允许作为执行文件

    image-20210209142848140

  • 然后退出,右键运行,就会出现下图图片,右键小图片,打开详细窗口

image-20210209144946350

  • 点击图床设置,选择七牛图床填写中信息:

    image-20210209145201914

    • AccessKey和SecretKey在七牛云的秘钥管理获得

      image-20210209145544925

    • 存储空间名称就是前面设置的空间名称

    • 访问地址填写http://+二级域名,如(http://img.abc.com)注意,一定要添加http://

    • 存储区域为:

      • 华东:z0
      • 华北:z1
      • 华南:z2
      • 北美:na0
      • 东南亚:as0
    • 最后两项不填

  • 点击确认,点击设为默认图床

  • 点击PicGo设置,找到设置server,将端口改为36677

    image-20210209155608173peizhi

  • 到这里,就可以通过picgo手动上传图片了。这时就可以回到上传区上传图片测试一下,如若上传失败,请仔细检查以上步骤是否出错。

3.2 安装PicGo-core

PicGo的图形界面在ubuntu上对typora支持不是很好,因此使用 PicGo-core,采用命令行方式自动上传图片。

  • 安装nodejs

    ubuntu默认不带有nodejs,若已经安装请运行命令node -v检查版本是否大于8.0

    若版本小于8.0请先执行以下命令卸载旧版本nodejs

    sudo apt-get remove nodejs
    
    curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
    
    sudo apt-get install  nodejs
    
  • 测试是否安装成功,执行下面命令,显示版本号就表示安装成功

    node -v
    
  • 测试npm是否可以使用

    npm -v
    

    若出现版本号表示可用 跳过下面这条命令;若提示命令不存在则执行下列命令

    sudo apt install npm
    

    再次测试。

  • 使用淘宝源安装cnpm,默认源太太太慢了,这可能需要一段时间

    sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
    
  • 安装PicGo-core

    sudo cnpm install picgo -g
    
  • 编写PicGo-ce的配置文件,默认路径是~/.picgo/config.json

    • 打开PicGo设置,点击打开配置文件,复制全部内容

    • 打开picgo-ce的配置文件

       vim ~/.picgo/config.json
      
    • 删除全部内容

    • ctrl+shift+v 粘贴copy的配置文件内容(右键 粘贴)

    • 保存并退出

4. Typora配置

  • 打开typora,文件—>偏好设置—>图像

    image-20210209162226279

  • 插入图片时改为上传图片

  • 勾选图中3个附加选项

  • 上传服务设定改为custom Command

  • 命令改为/usr/bin/node /usr/local/bin/picgo upload

    • 注意node和/usr之间有一个空格

    • 填写前请先使用命令确认node和picgo的位置,若位置与作者的不同请更改命令中的语句

      rabbit•~•»»»where node                                                                                              
      /usr/bin/node
      rabbit•~•»»»where picgo                                                                                             
      /usr/local/bin/picgo
      rabbit•~•
      
  • 点击验证图片上传选项,完成!可以愉快的写文章了!

若出现错误请根据提示的错误检查相应位置的内容。

写文档过程中感觉PicGo GUI版本(.appimage)的用处好像只有检验配置信息这一用处,起主要作用的应该是picgo-ce,也就说PicGo GUI版本可以在配置完之后删除。这只是作者猜测,并没有实践。若有读者实践后请告知一声,谢谢!

后记

转载请注明出处,拒绝白嫖党!

1. 首先,需要在七牛云上创建一个存储空间,并获取该存储空间的accessKey、secretKey、bucket和domain。 2. 在Springboot中引入七牛云的Java SDK,可以通过Maven或Gradle进行引入。例如,在Maven中添加以下依赖: ``` <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.2.0, 7.2.99]</version> </dependency> ``` 3. 创建一个七牛云配置类,用于存储accessKey、secretKey、bucket和domain等配置信息。 ``` @Configuration public class QiniuConfig { @Value("${qiniu.accessKey}") private String accessKey; @Value("${qiniu.secretKey}") private String secretKey; @Value("${qiniu.bucket}") private String bucket; @Value("${qiniu.domain}") private String domain; @Bean public Auth auth() { return Auth.create(accessKey, secretKey); } @Bean public Configuration configuration() { return new Configuration(Zone.zone0()); } @Bean public UploadManager uploadManager() { return new UploadManager(configuration()); } @Bean public BucketManager bucketManager() { return new BucketManager(auth(), configuration()); } @Bean public StringMap putPolicy() { StringMap putPolicy = new StringMap(); putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"bucket\":\"$(bucket)\",\"name\":\"$(fname)\",\"size\":$(fsize)}"); return putPolicy; } @Bean public String uploadToken() { return auth().uploadToken(bucket, null, 3600, putPolicy()); } @Bean public String domain() { return domain; } } ``` 4. 在Vue中使用element-ui的上传组件,设置上传的接口为Springboot的接口。 ``` <el-upload class="upload-demo" action="/api/upload" :show-file-list="false" :on-success="handleSuccess" :before-upload="beforeUpload" :headers="{Authorization: 'Bearer ' + token}" > <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> ``` 5. 在Springboot中编写上传接口,在该接口中使用七牛云的Java SDK进行上传。 ``` @RestController @RequestMapping("/api") public class UploadController { @Autowired private UploadManager uploadManager; @Autowired private String uploadToken; @Autowired private String domain; @PostMapping("/upload") public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file) throws IOException { try { Response response = uploadManager.put(file.getBytes(), null, uploadToken); if (response.isOK()) { String key = JSON.parseObject(response.bodyString()).getString("key"); return ResponseEntity.ok(domain + "/" + key); } } catch (QiniuException e) { e.printStackTrace(); } return ResponseEntity.badRequest().build(); } } ``` 6. 程序运行后,在Vue中上传图片即可自动将图片上传到七牛云,并返回图片的访问URL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值