QingStor 对象存储支持存储空间策略

存储空间策略是 QingStor 存储空间(bucket)的子资源(subresource),允许用户更细粒度的控制存储空间的访问。 其语义主要由用户、 资源、动作、及条件运算符组合定义。例如仅允许指定用户以指定站点为 Referer 以下载存储空间中的某单个文件,或者防止外链等。

qingstor_policy_0

策略属性

  • resource
    策略中需要制定控制的资源,可以指定为某些 object, 或者 bucket
  • user
    策略所应用到的用户
  • effect
    当用户请求特定操作时的效果。可以是允许或者拒绝
  • condition
    存储空间策略生效的条件。支持匹配 `Referer` 元素。可用来做防盗链
  • action
    设置是否允许(或拒绝)资源的操作

配置示例

  1. 在 bucket 页面点击设置->存储空间策略->添加规则
  2. 配置添加规则qingstor_policy_1
  3. 点击保存,生效设置
  4. 配置生成的 bucket policy
    {
        "statement": [
    	{
    	     "id": "hotlink-whitelist",
    	     "user": "*",
    	     "action": "get_object",
    	     "effect": "allow",
    	     "resource": ["foo-bucket/*"],
    	     "condition": {
    		 "string_like": {"Referer": "*.example.com"},
    		 "string_not_like": {"Referer": "*.service.example.com"}
    	      },
    	}
        ]
    }

以上配置将允许从 `*.example.com` 但除了 `*.service.example.com` 以外的链接到 QingStor 用以访问 bucket:`foo-bucket` 下所有 object 的请求被允许。

更多详细介绍请参考相关文档: QingStor Bucket Policy

QingStor 支持对象拷贝、剪切和重命名

QingStor 新增了 object copy 接口,使用此接口可将 QingStor 对象从源存储空间复制到目标存储空间,更详细的信息可 参考文档。

在 QingStor Web 界面上,我们也实现了对象拷贝、剪切和重命名的支持。

剪切和复制对象

在文件列表上右键 -> 剪切/复制

qingstor_copy_0

粘贴到目标文件夹

qingstor_copy_1

文件重命名

在文件列表上右键 -> 重命名

qingstor_copy_2

对话框里填写新文件名

qingstor_copy_3

QingStor 对象存储推出数据同步工具 qsctl

qsctl 是开·云app官方版下载对象存储服务的高级命令行工具。它提供了更强大的类 UNIX 命令,使管理对象存储的资源变得像管理本地资源一样方便。利用该工具,你可以快速地将数据在本地和 QingStor 对象存储之间迁移或同步。

支持命令

  • ls
    列出所有的存储空间,或给定存储空间给定前缀下的所有对象
  • cp
    复制本地文件到QingStor存储空间,或复制QingStor对象到本地
  • mb
    创建一个新的存储空间
  • rb
    删除一个空的存储空间,或强制删除一个非空的存储空间
  • mv
    移动本地文件到QingStor存储空间,或移动QingStor对象到本地
  • rm
    删除一个QingStor对象或给定前缀下的所有对象
  • sync
    在本地目录和QingStor目录之间同步

使用示例

列出存储空间 <mybucket> 下的所有对象:

$ qsctl ls qs://mybucket
Directory test/
2016-04-03 11:16:04 4 Bytes test1.txt
2016-04-03 11:16:04 4 Bytes test2.txt

同步 QingStor 目录到本地文件夹:

$ qsctl sync qs://mybucket/test/ test/
File 'test/README.md' written
File 'test/commands.py' written

qsctl 的帮助和手册十分详细,查看 qsctl 的参数和简易教程,可以通过 -h 参数打印出来:

$ qsctl -h
$ qsctl <command> -h

若要查看 qsctl 的详细手册和示例,可运行:

$ qsctl help
$ qsctl <command> help

使用文档

qsctl 支持主流的操作系统(包括 Linux, Windows,以及 Mac),安装起来非常方便,使用 pip 工具即可,具体步骤可参考 官方文档。

QingStor 支持跨源资源共享 (CORS)

跨源资源共享 (Cross-Origin Resource Sharing,简称 CORS) 是 HTML5 提供的标准跨源解决方案,具体可以参考 W3C CORS规范 。

QingStor 已经支持 CORS ,可以允许您对 QingStor 下的存储空间 (Bucket) 进行 CORS 规则的配置, 从而可以创建直接与 QingStor 进行富交互的 web application,以及限制源对您在 QingStor 中资源的访问,参考 QingStor Bucket CORS 。

典型场景和示例

当浏览器端使用 AJAX 直接访问 QingStor 的数据时,则需要利用 CORS 来实现跨源浏览器与 QingStor 直接通信。

例如,网站的某些静态图片资源存储在 QingStor 的 “images” 这个 bucket 中。如果网站想利用 JavaScript AJAX 取回或者上传图片。当向 bucket 直接发起 GET, POST 请求时,是不被允许的。此时则需要设置 CORS 的规则。

设置示例

主要配置项:

  • allowed_origin
    用户所期望的跨源请求来源,可以用 “*” 来进行通配
  • allowed_methods
    设置源所允许的 HTTP 方法。可指定以下值的组合: “GET”, “PUT”, “POST”, “DELETE”, “HEAD”, 或者使用 “*” 来进行设置
  • allowed_headers
    设置源所允许的 HTTP header 。 可以用 “*” 来进行通配
  • expose_headers
    设置客户能够从其应用程序(例如从 JavaScript XMLHttpRequest 对象)进行访问的 HTTP 响应头
  • max_age_seconds
    设置在预检请求(Options)被资源、HTTP 方法和源识别之后,浏览器将为预检请求缓存响应的时间(以秒为单位)

操作流程:

  1. 在 bucket 页面点击设置 -> CORS -> 添加请求源qingstor_cors_0
  2. 配置添加请求源qingstor_cors_1
  3. 配置完成
    qingstor_cors_2

以上示例配置, 将使您从 http://your-domain.com 发出的对 QingStor bucket 的 AJAX 跨源 GET, POST 请求成功执行,同时缓存预检请求300s,并能从 AJAX 的返回结果中访问到任意的 HTTP header。

QingStor 对象存储服务正式商用

qingstor

2016 年 9 月 13 日,QingStor 对象存储服务(Object Storage)正式启动商用,同时开放的还有 CDN 加速服务,所有开·云app官方版下载QingCloud 用户可以在北京 3 区(PEK3)使用上述两项服务。商用的第一个月为缓冲期,缓冲期结束后( 10 月 13 日)开始计费。立即体验

QingStor 对象存储于今年 1 月 8 日启动公测,随后进行了为期 8 个月的试运行。在公测期间,用户在 QingStor 对象存储累计上传文件数量超过 100 亿,容量达到 1PB ,文件类型包括静态网页、音频、视频、文档、日志、映像等。

在大量公有云用户多样化的应用场景中,QingStor 对象存储在性能(高并发)、可用性、稳定性等方面得到了充分的验证。同时,QingStor 对象存储已经在借贷宝、泰康人寿等多套私有云生产环境中部署上线,承担了重要的存储引擎角色,为客户的互联网业务提供强大助力。

QingStor 对象存储特性介绍

QingStor 对象存储为用户提供可无限扩展的通用数据存储服务,具有安全可靠、简单易用、高性能、低成本等特点。其突出优势概括如下:

  • 无限水平扩展:系统可无限水平扩展,且在存储容量水平扩展时,数据存取的性能线性提升。可承载无限存储空间,每个存储空间的容量亦可无限扩展。
  • 高可靠:实时多副本,无单点故障,具备无条件的数据恢复能力。
  • 通用数据存储:可存储任意数量、任意类型、任意大小的非结构化数据。
  • 与计算紧密结合:与 QingCloud IaaS 资源可通过内网进行数据传输,保证更高效的数据传输与处理,且因内网传输免费,用户将节省大量成本。
  • 标准用户接口:提供标准、规范且简单的 RESTful API,及主流语言的 SDK ,并提供详尽的 API 文档。
  • 网络加速:集成 QingCloud CDN ,自动选择离用户最近的边缘节点,使得数据传输速度最优化。

QingStor 对象存储功能介绍

  • 分段上传:支持对文件进行分段上传,最大支持 10,000 段,每段大小最大可达 5G,一方面帮助用户将大文件在尽可能短的时间内上传,另一方面允许用户存储最大至 50TB 的文件。
  • 断点续传:下载支持断点续传,保障用户在网络质量较差的环境中仍能够顺利下载资源。
  • 安全:基于对称加密的请求认证方式;
    • 支持通过 SSL 加密数据传输;
    • 支持在服务端通过AES-256 加密算法加密文件内容,加密所用密钥可由用户提供,也可由服务端生成;
    • 多维访问控制
      • 存储空间访问控制列表 (Bucket ACL), 为存储空间级别的访问控制,用户可将存储空间的读、写、或读写权限开放给单个或多个 QingCloud 用户。
      • 存储空间策略 (Bucket Policy), 语义涵盖 API ACL, 及 Resource ACL。通过存储空间策略,用户可向其他开·云app官方版下载QingCloud 用户赋予相应存储空间及其对象的访问权限,对象指定方式支持通配。
  • 多维度监控:监控项包括内网出/入流量、外网出/入流量、容量、内网 API 调用次数、外网 API 调用次数,及容量。各条目监控最小粒度均为 1 小时。
  • 网络加速
    • 支持与 QingCloud CDN 的集成。QingCloud CDN 精选主流 CDN 厂商优质节点,全面覆盖各运营商,无盲区。
    • 自动选择离用户最近的节点,使得数据的下载速度最优化。
  • 外部镜像:用于帮助用户将业务所依赖的第三方对象存储无缝切换至 QingStor™ 对象存储。
  • 表单:上传帮助用户便捷地将小文件通过 HTML 表单上传至存储空间。
  • Copy:用于在不同的 QingStor™ 存储空间之间复制对象。此操作要求请求者对源存储空间拥有可读权限,对目标存储空间拥有可写权限。
  • CORS:跨源资源共享 (CORS) 定义了在某个域名下的 Web Applications 对另一个域名下资源的访问规则。通过配置 CORS 规则,用户不但可以创建直接与对象存储进行富交互的 Web Application,也可以指定哪些请求源有权限访问其在对象存储中的资源。
  • 域名别名:存储空间域名别名。如果用户希望通过自定义的域名访问 QingStor™ 的存储空间,可以将其设置为该存储空间的域名别名。

QingStor 对象存储生态

  • AWS S3 兼容:完美对接在 AWS S3 API 之上构建的工具及服务,极大地丰富了用户使用 QingStor 对象存储的方式。
  • Qsctl 高级命令行工具:提供了更强大的类 Unix 命令,使管理 QingStor 对象存储的资源变得像管理本地资源一样方便。
  • SDK:QingStor 对象存储已提供 Python SDK,近期还将提供 Go、Ruby、PHP、Java 的 SDK,方便开发者开发出更有创造力的产品。

QingStor 对象存储基础应用场景

场景一:海量通用文件存储

QingStor 对象存储服务提供了安全、可靠的数据存储服务,适用于静态网页、图片、音视频、日志、映像等各种类型文件的存储,支持用户通过控制台、API、SDK 等各种方式进行读写。同时 QingStor 对象存储系统可无限水平扩展,且在存储容量水平扩展时,数据存取的性能线性提升。相较于块存储,可以更好地满足企业海量数据的存储和访问需求,同时节约了大量的存储成本。

场景二: 数据分析&挖掘:

QingStor 对象存储作为海量数据存储池,将会与 QingCloud 平台上的计算资源紧密整合,尤其是 QingCloud 大数据平台(如 Hadoop、Spark、 Storm 等),从而实现高性能、低成本的数据分析与挖掘,提升企业数据价值。

场景三: 互联网应用加速:

QingCloud 精选主流 CDN 厂商优质节点,全面覆盖各运营商,无盲区;自动选择离用户最近的边缘节点,使得数据的传输速度最优化。为互联网应用的图片、音视频以及应用分发提供最佳的用户体验。

场景四: 数据备份:

QingStor 对象存储服务通过兼容基于 AWS S3 API 构建的工具与服务,支持主流的备份软件,结合快速的数据存取性能、高度的服务可靠性和数据安全性、细粒度的权限控制及简单易用的接口,向用户提供更高性能、更可靠、更低成本的数据备份方案,帮助企业节约本地存储成本、维护成本和人力资源成本。

QingStor 对象存储快速上手

QingCloud 用户可以在控制台选择北京3区(PEK3)通过图形化界面来创建存储空间( Bucket ) 并上传文件(具体操作请点击阅读原文查看),同时我们推荐大家通过 API、SDK 以及命令行工具来管理和使用 QingStor 对象存储。

QingStor 对象存储 12 个月免费用

QingStor 对象存储将从存储容量、流量、API 请求数三个维度进行阶梯计费,并为用户创建的第 1 个存储空间(Bucket)提供 12 个月赠送套餐,从用户创建的第 1 个存储空间之日算起,在未来 12 个月免费赠送:

  • 10 GB 存储空间
  • 1 万次 PUT、POST、DELETE 请求
  • 10 万次 GET、HEAD 请求
  • 50 GB 下载流量

PS:免费政策只对用户创建的第 1 个存储空间有效。当 12 个月的免费试用过期或使用量超过了免费限额,按照资费标准按需支付。

更多详情请见《QingStor 指南》。