存储架构

Ghost Aliyun OSS storage module

微信扫一扫,分享到朋友圈

Ghost Aliyun OSS storage module
0

项目逐渐容器化,内部环境也已经使用Docker Swarm管理,存储也就成了不得不解决的问题。我司目前云存储主要使用阿里云OSS,有几个项目是给运营写文章的,使用了Ghost,没找到现有的OSS Storage,只好造轮子了~

官网文档: Using-a-custom-storage-module

In 0.10.0 we have added a small storage validation. This validation ensures that a minimum of required functions are implemented (save, exists, serve, delete). If you install 0.10.0 and your custom storage adapter has no implementation of e.g. exists, node won’t start.

0.11要实现四个方法:

  • save
  • serve 如果save方法返回了绝对路径,这里简化为express的middlewave,next()即可
  • exists
  • delete

要注意的地方是:

  • storage要继承baseStore
  • storage要加这句:baseStore.call(this);

所以代码是酱紫:

function OssStore(config) {  
  baseStore.call(this);
  this.options = config || {}
  this.client = new OSS(this.options)  
}

util.inherits(OssStore, baseStore);

其他的直接看代码吧,反正也就四个func,对了,好像delete/exits现在基本没什么卵用,没被调用,只是需要检查,Ghost的代码里有这段:

# core/server/storage/base.js
function StorageBase() {
    Object.defineProperty(this, 'requiredFns', {
         value: ['exists', 'save', 'serve', 'delete'],
         writable: false
    });
}

所以,要是实在不想写的话,把源码里57-59注释了吧…

# core/server/storage/index.js

if (!storage[storageChoice].requiredFns) {
     throw new errors.IncorrectUsage('Your storage adapter does not provide the minimum required functions.');
}

(⊙v⊙)嗯,链接(小广告):

阅读原文...


苏依蜀黍de小木屋

三星危机、黑莓外包:智能手机格局驶向何方?

上一篇

有必要悼念及记录一下

下一篇

您也可能喜欢

评论已经被关闭。

插入图片
Ghost Aliyun OSS storage module

长按储存图像,分享给朋友