青云对象存储

目的

之前的模式

之前我们的资源是存储在青云服务器的磁盘上的.. cdn用的七牛.. 然后七牛到磁盘回源

现在要做的模式

现在想用青云的对象存储替代物理磁盘, 然后CDN还是用七牛

疑问

  • 我们自己有个图片相似度分析,这时候就需要传入图片的磁盘路径,那么这样的话..是不是每次要用对象存储上下载下来..然后比对完毕..再删除
  • 麻烦看下我下面的这些流程是否有问题
  • 给出建议

注册青云账户

增加对象存储Bucket

设置外部镜像

这个功能主要是方便把本地文件,自动导入到对象存储上..

空间权限的问题

最后,我们要让七牛CDN去访问对象存储上的资源

方案一

设置Bucket为公开权限,这样的话,只要知道Url的话,资源就暴露了..我觉得很不安全

个人觉得你们的url还是比较好猜啊~~ 😆

{
"name": "storage-blog",
"keys": [
{
    "created": "2018-05-30T11:52:54.000Z",
    "encrypted": false,
    "modified": 1527681174,
    "etag": "\"240d20390231dcd4f291317c0820f28a\"",
    "key": "avatar/63fbc02e306e5b03c9940621e50f609d.png",
    "storage_class": "STANDARD",
    "mime_type": "image/png",
    "size": 90526
},
{
    "created": "2018-05-30T11:52:56.000Z",
    "encrypted": false,
    "modified": 1527681176,
    "etag": "\"240d20390231dcd4f291317c0820f28a\"",
    "key": "avatar/7a5be91f69e34458243d4f225083faa4.png",
    "storage_class": "STANDARD",
    "mime_type": "image/png",
    "size": 90526
},
{
    "created": "2018-05-30T11:52:47.000Z",
    "encrypted": false,
    "modified": 1527681167,
    "etag": "\"240d20390231dcd4f291317c0820f28a\"",
    "key": "avatar/be425415541c94e5e38f5141314598dd.png",
    "storage_class": "STANDARD",
    "mime_type": "image/png",
    "size": 90526
},
{
    "created": "2018-05-30T11:52:58.000Z",
    "encrypted": false,
    "modified": 1527681178,
    "etag": "\"240d20390231dcd4f291317c0820f28a\"",
    "key": "avatar/db703ff08330422fcca27db0714f3fb1.png",
    "storage_class": "STANDARD",
    "mime_type": "image/png",
    "size": 90526
},
{
.....

方案二

我这里设置了一个存储空间策略,他的值都是默认值

file

这个设置之后,好像如果我不知道知道这个资源的正确url就会出现权限拒绝, 这个就和七牛的cdn那个差不多了

测试图片url

如果访问这个地址,会有如下提示..

{
    "code": "object_not_exists",
    "message": "The object you are accessing does not exist.",
    "url": "http://docs.qingcloud.com/qingstor/api/common/error_code.html",
    "request_id": "10176a8f0000cfdb"
}

综上所属.... 这种访问的权限机制..基本能满足..我们的需求.. 技能对外访问.. 又不很明显的暴露我们的资源

我这边的最终方案

文件上传

上传文件直接上传到青云对象存储

cdn步骤

  • 设置七牛回源地址为青云对象存储api