国内有什么方便的图床?

类似于 www.imgur.com, 但要可以从国内访问的
关注者
305
被浏览
116,704

49 个回答

补充一个:LOFTER

说到方便,还是七牛,分享一下我的经验

原文链接:如何使用七牛云做为图床?


背景

  • 2014年2月开始练千字文
  • 开始接触 Markdown 语法
  • 知道了图床,用免费图床各种不顺心
  • 免费的

    • yupoo:当时100m的免费空间,用了一阵子,很快就爆了
    • 新浪相册:会压缩图片,批量上传老是出问题,老担心他家搞个防盗链
    • 其他国内的免费相册服务,不是界面丑就是速度慢……
    • 国外的图床不敢用,挂了可是个大工程呐,我当时还没备份的习惯……
    • 其他私人搭建的图床,用过几次,挂了
  • 收费的

    • 换过杂七杂八的免费图床
    • 总觉得找免费图床,心神消耗挺大的
    • 我只想好好写博客而已,还是找个收费吧,一了百了
    • 收费的图床在知乎一搜,要么又拍云,要么七牛
    • 注册又拍云,发现不付费不能用呀……放弃了~
    • 注册七牛,发现有 10g 空间体验账户,用起
    • 那时候的我以为 10g 空间是容量,够我用好一阵子,嗯!

选定七牛

  • 2014年3月注册了七牛免费账户(注册后一直没用)
  • 5月搭建博客,常写博客,用 七牛 配图
  • 免费账户 肆无忌惮 地用了一年多,10G 流量终于爆了
  • 这时,我才搞清楚 容量 和 流量 的区别(too young~)
  • 2015年7月,一篇 多图文章 让我欠费了
  • 终于,七牛冻结了账户,果然出来混是要还的
  • 终于,我付费了,使用了标准服务
  • 继续使用 七牛 原因
    • 使用一年多,极其稳定
    • 转移成本极大,积累了近一年的图片……
    • 相比其他平台便宜太多
    • 服务器故障(小用户没啥感觉)给我发过几个红包~标准用户才可以用
  • 购买服务之后,马上将流量大户(1M以上的图片)换了
  • 最近几个月平均消费:每月15元左右
  • 挺好,这消费证明我的博客还有人看……
  • 付费心血教训:上传图片必须限制在 200 k 以内呐
  • 想起以前,2 M 的图片,眼都不眨一下……

以往方案

背景终于啰啰嗦嗦地介绍完了,说说以前我是如何上传并使用七牛图床的吧~

  1. 登录打开七牛云网页个人存储空间
  2. 上传图片
  3. 复制外链
  4. 粘贴到 Markdown

一张图片用了四步呐,想想这篇文章的图片都是如此上传的,还真是作死。

世界并非如你所见——用可供性来发现更大的世界

转折

折腾起来 准备工具及我的配置

  • 七牛账户一枚,或拥有 七牛 的 AccessKey/SecretKey,已有建立的空间
    • 例如我的七牛云空间(bucket)名字就是 cnfeat
    • 假设我的 AccessKey 是 cnfeat1234
    • 假设我的 SecretKey 是 cnfeat5678
  • chrome 浏览器

简单的实现方法

  • 下载 Demo 集锦- 七牛云存储qiniu upload files 插件

    • 七牛云插件,像使用桌面系统一样管理你的七牛云空间
    • 支持拖拽上传,批量操作,文件处理等功能
  • 安装完成后,填写表单


  • 填写完成,会出现如下界面,
  • 将图片拖入,出现图片外链地址,复制即可

命令行折腾

以上的结果已经满意了吗?NO! NO! NO!

用命令行才是王道!以下是我用 命令行折腾七牛云同步 准备的工具

  • Mac,Mac 的用户名是 cnfeat,以下的教程请自觉将用户名替换成你的
  • 下载好qrsync 命令行同步工具,放在得出名为 qrsync 的文件
    • 文件地址:/Users/cnfeat/Downloads/qiniu-devtools-darwin_amd64-v2.6.20131211/qrsync

    • 注:以下的教程只会用到 qrsync 文件。
  • sublime

以下的操作基本是按照七牛云的官方文档 qrsync 命令行同步工具 来操作,如有不明白,请移步官方文档

配置 qrsync

配置目的:能在 终端 直接调用 qrsync 命令

  • 方法:将 qrsync 文件放入 /usr/local/bin/
    • 知识点:在/usr/local/bin/出现的 字符 都是可以直接在终端直接调用的命令行
  • 实现方法一:
    • 复制 qrsync 文件
    • 快捷键 Shift+Command+G 打开 /usr/local/bin/
    • 粘贴 qrsync 文件
  • 实现方法二:
    • 直接用复制命令行 cp
    • 打开 终端
    • 输入 cp /Users/cnfeat/Downloads/qiniu-devtools-darwin_amd64-v2.6.20131211/qrsync /usr/local/bin/
    • 意思是复制 Downloads 位置的 qrsync 文件 到 /usr/local/bin/
    • Linux基本命令学习之二—-Linux基本命令

配置 conf.json

配置说明:用 conf.json将本地文件与七牛云的通道打通,将本机指定文件上传到指定的空间。

目的:将 conf.json 文件里面的语法填写正确

{
            "access_key": "Please apply your access key here",
            "secret_key": "Dont send your secret key to anyone",
            "bucket": "Bucket name on qiniu resource storage",
            "sync_dir": "Local directory to upload",
            "async_ops": "fop1;fop2;fopN",
            "debug_level": 1
 }
  • 建立 conf.json 文件
    • 用 sublime 新建文档,粘贴以上文本
    • Shift+Command+P 打开 命令面板
    • 输入 json 回车,将文件格式改为 json
    • Command+S,将其保存在/Users/cnfeat/7niu/目录下,文件名保存为 conf
    • 这样 conf.json 文件就新建好
    • 目录地址是/Users/cnfeat/7niu/conf.json

conf.json 文件下载链接: pan.baidu.com/s/1mgq5MR 密码: accm

  • 配置 conf.json

    • 到 <登录 - 七牛云存储> 获取你的AccessKey/SecretKey

    • “bucket” 即你的七牛云空间名字,你的空间名字在七牛网内是唯一的

      • 例如,我的七牛云空间名字是 cnfeat
    • “sync_dir” 是你本地要上传图片文件夹的地址
      • 例如,我就在 Documents 文件夹建了 名为qrsync 的文件夹,并在里面放了一张名为cnfeat-img.jpg的图片
      • 所以,上传地址就是 /Users/cnfeat/Documents/qrsync
    • “async_ops” 是设置上传预转参数,可以留空
    • “debug_level” 默认就好

所以,最终的 conf.json 配置是这样的

{
            "access_key": "cnfeat1234",
            "secret_key": "cnfeat5678",
            "bucket": "cnfeat",
            "sync_dir": "/Users/cnfeat/Documents/qrsync",
            "async_ops": "",
            "debug_level": 1
 }

为了易于区分,我后来将 conf.json 重命名为 cnfeat.json

使用命令行同步

打开终端输入

qrsync /Users/cnfeat/7niu/cnfeat.json 

出现

2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] qrsync.go:205: Syncing /Users/cnfeat/Documents/qrsync => cnfeat ...
2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] qrsync.go:213: Progress file: /Users/cnfeat/.qrsync/lEfrYxfiWq48qgm95oixXg==.log
2015/11/22 20:40:48 [INFO][qbox.us/qrsync/v1] syncer.go:83: Put /Users/cnfeat/Documents/qrsync/.DS_Store => .DS_Store
2015/11/22 20:40:51 [INFO][qbox.us/qrsync/v1] syncer.go:83: Put /Users/cnfeat/Documents/qrsync/cnfeat-img.jpg => cnfeat-img.jpg
2015/11/22 20:40:51 [INFO][qbox.us/qrsync/v1] qrsync.go:184: Sync done!

显示 cnfeat-img.jpg 图片已经上传成功。

打开 [http://cnfeat.qiniudn.com/cnfeat-img.jpg](http://cnfeat.qiniudn.com/cnfeat-img.jpg)可以看见图片了。

至此,用 命令行 上传图片至 七牛云 的教程完成。

高阶设置

  • 虽然上传图片成功了,但是我想要得到图片外链怎么办?
  • 难道我还要到七牛云网页个人存储空间根据文件名将图片搜出来,然后复制其外链吗?
  • 那也太傻逼了吧

联想

  • 图片上传后外链的地址的前缀是固定的:Index of / {gen. by gen4idx.py v13.4.18}
  • Markdown 图片格式是固定的:![](Index of / {gen. by gen4idx.py v13.4.18})
  • 每次同步图片的命令行也是固定的 qrsync /Users/cnfeat/conf.json
  • 联想到 atext
    强大

于是

  • 在 atext 设定快捷键
    • ;qr>>qrsync /Users/cnfeat/7niu/cnfeat.json
    • ;pi>>![](Index of / {gen. by gen4idx.py v13.4.18})

那么最终生成图片外链地址只需要

  1. 终端输入;qr
  2. 文本输入;pi 补充图片名

收工!

迭代

  • 2015-11-30 14:24:46 补增 背景 描述
  • 2015-11-29 20:08:51 更新 conf.json 目录
  • 2015-11-22 21:15:54

参考