第十七天 OSS云存儲(chǔ)
阿里云存儲(chǔ)服務(wù)(Open Storage Service拉宗,簡(jiǎn)稱OSS)逞带,是阿里云對(duì)外提供的海量,安全,低成本,高可靠的云存儲(chǔ)服務(wù)。用戶可以通過(guò)簡(jiǎn)單的REST接口,在任何時(shí)間、任何地點(diǎn)上傳和下載數(shù)據(jù)集晚,也可以使用WEB頁(yè)面對(duì)數(shù)據(jù)進(jìn)行管理
OSS具有如下特點(diǎn):
(1)穩(wěn)定:服務(wù)可用性高達(dá)99.9%;系統(tǒng)規(guī)模自動(dòng)擴(kuò)展区匣,不影響對(duì)外服務(wù)偷拔;數(shù)據(jù)三重備份,可靠性達(dá)到99.99999999%亏钩。
(2)安全:多層次安全防護(hù)和防DDoS攻擊莲绰;多用戶隔離機(jī)制;
(3)大規(guī)模姑丑,高性能:具有海量的存儲(chǔ)空間蛤签,隨用戶使用量的增加,空間彈性增長(zhǎng)栅哀,并能支持同時(shí)間內(nèi)高并發(fā)震肮、大流量的讀寫(xiě)訪問(wèn)。
同時(shí)OSS還提供圖片處理功能留拾,對(duì)存儲(chǔ)在OSS上的圖片戳晌,支持縮略、裁剪痴柔、水印沦偎、壓縮和格式轉(zhuǎn)換等圖片處理。
開(kāi)始使用OSS
快速開(kāi)始-Node.js
下面介紹如何在Node.js環(huán)境中使用OSS JavaScript SDK來(lái)訪問(wèn)OSS服務(wù),包括查看Bucket列表豪嚎,查看文件列表鸿捧,上傳/下載文件和刪除文件。為了方便修改疙渣,下面的介紹會(huì)新建一個(gè)app.js,下面的功能演示代碼都寫(xiě)在這個(gè)文件中堆巧。
- 安裝SDK
首先在工作目錄安裝ali-oss:
npm install ali-oss
- 使用同步方式
由于SDK基于ES6開(kāi)發(fā)妄荔,使用了Generator Function使得用戶能夠方便地用同步的方式異步的代碼,需要配合co使用谍肤。具體可參考這篇博客啦租。使用同步方式還需要安裝co:
npm install co
- 使用異步方式
為了支持callback的使用方式,SDK同時(shí)也提供了異步的基于Promise的接口荒揣,使用上類似callback篷角,具體可參考這篇博客。
下面的文檔將以同步的方式為例系任。
-
初始化Client
創(chuàng)建一個(gè)文件:app.js并寫(xiě)入下面的內(nèi)容:
var co = require('co'); var OSS = require('ali-oss'); var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>' });
其中region參數(shù)是指您申請(qǐng)OSS服務(wù)時(shí)的區(qū)域恳蹲,例如’oss-cn-hangzhou’。完整的區(qū)域列表可以在OSS服務(wù)節(jié)點(diǎn)查看俩滥。
如果所使用的endpoint不在上述列表中嘉蕾,可以通過(guò)以下參數(shù)指定endpoint: internal: 配合region使用,如果指定internal為true霜旧,則訪問(wèn)內(nèi)網(wǎng)節(jié)點(diǎn) secure: 配合region使用错忱,如果指定了secure為true,則使用HTTPS訪問(wèn) endpoint: 例如http://oss-cn-hangzhou.aliyuncs.com挂据,如果指定了endpoint以清,則region會(huì)被忽略,endpoint可以指定HTTPS崎逃,也可以是IP形式 cname: 配合endpoint使用掷倔,如果指定了cname為true,則將endpoint視為用戶綁定的自定義域名 bucket: 如果未指定bucket婚脱,則進(jìn)行Object相關(guān)的操作時(shí)需要先調(diào)用useBucket接口(只需要調(diào)用一次) timeout: 默認(rèn)為60秒今魔,指定訪問(wèn)OSS的API的超時(shí)時(shí)間
-
查看Bucket列表
在app.js末尾添加如下內(nèi)容,使用listBuckets接口查看Bucket列表:
co(function* () { var result = yield client.listBuckets(); console.log(result); }).catch(function (err) { console.log(err); });
運(yùn)行并查看結(jié)果:node app.js障贸。
-
查看文件列表
修改app.js错森,使用list接口查看文件列表:
co(function* () { client.useBucket('Your bucket name'); var result = yield client.list({ 'max-keys': 5 }); console.log(result); }).catch(function (err) { console.log(err); });
使用node app.js運(yùn)行并查看結(jié)果。
-
上傳一個(gè)文件
修改app.js篮洁,使用put接口上傳一個(gè)文件:
co(function* () { client.useBucket('Your bucket name'); var result = yield client.put('object-key', 'local file'); console.log(result); }).catch(function (err) { console.log(err); });
-
下載一個(gè)文件
修改app.js涩维,使用get接口下載一個(gè)文件:
co(function* () { var result = yield client.get('object-key', 'local file'); console.log(result); }).catch(function (err) { console.log(err); });
-
刪除一個(gè)文件
修改app.js,使用delete接口下載一個(gè)文件:
co(function* () { var result = yield client.delete('object-key'); console.log(result); }).catch(function (err) { console.log(err); });
具體使用請(qǐng)參考頁(yè)面鏈接: