fsd-vod 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +20 -21
- package/package.json +4 -4
package/lib/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const OSS = require("ali-oss");
|
|
4
3
|
const LRUCache = require("lru-cache");
|
|
5
4
|
const Debugger = require("debug");
|
|
6
5
|
const RPC = require("@alicloud/pop-core");
|
|
7
6
|
const stream_1 = require("stream");
|
|
8
7
|
const akita_1 = require("akita");
|
|
8
|
+
const simple_oss_client_1 = require("fsd-oss/simple-oss-client");
|
|
9
9
|
const debug = Debugger('fsd-vod');
|
|
10
10
|
const client = akita_1.default.resolve('fsd-vod');
|
|
11
11
|
const CALLBACK_BODY = 'bucket=${bucket}&path=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}&format=${imageInfo.format}';
|
|
@@ -79,7 +79,7 @@ class VODAdapter {
|
|
|
79
79
|
};
|
|
80
80
|
this.createUploadToken = async (videoId, meta) => {
|
|
81
81
|
if (videoId[0] === '/')
|
|
82
|
-
videoId = videoId.
|
|
82
|
+
videoId = videoId.substring(1);
|
|
83
83
|
let token = this._authCache.get(videoId);
|
|
84
84
|
debug('getAuth', videoId, token);
|
|
85
85
|
if (!token) {
|
|
@@ -119,7 +119,7 @@ class VODAdapter {
|
|
|
119
119
|
}
|
|
120
120
|
async getVideoInfo(videoId) {
|
|
121
121
|
if (videoId[0] === '/')
|
|
122
|
-
videoId = videoId.
|
|
122
|
+
videoId = videoId.substring(1);
|
|
123
123
|
let cache = this._videoCache.get(videoId);
|
|
124
124
|
if (cache)
|
|
125
125
|
return cache;
|
|
@@ -138,7 +138,7 @@ class VODAdapter {
|
|
|
138
138
|
}
|
|
139
139
|
async getMezzanineInfo(videoId, options) {
|
|
140
140
|
if (videoId[0] === '/')
|
|
141
|
-
videoId = videoId.
|
|
141
|
+
videoId = videoId.substring(1);
|
|
142
142
|
let params = Object.assign({
|
|
143
143
|
VideoId: videoId,
|
|
144
144
|
OutputType: 'cdn'
|
|
@@ -154,7 +154,7 @@ class VODAdapter {
|
|
|
154
154
|
}
|
|
155
155
|
async getPlayInfo(videoId, options) {
|
|
156
156
|
if (videoId[0] === '/')
|
|
157
|
-
videoId = videoId.
|
|
157
|
+
videoId = videoId.substring(1);
|
|
158
158
|
let params = Object.assign({
|
|
159
159
|
VideoId: videoId
|
|
160
160
|
}, options || {});
|
|
@@ -163,12 +163,11 @@ class VODAdapter {
|
|
|
163
163
|
async append(videoId, data) {
|
|
164
164
|
debug('append %s', videoId);
|
|
165
165
|
let token = await this.createUploadTokenWithAutoRefresh(videoId);
|
|
166
|
-
let oss = new
|
|
166
|
+
let oss = new simple_oss_client_1.default(token.auth);
|
|
167
167
|
if (typeof data === 'string') {
|
|
168
168
|
data = Buffer.from(data);
|
|
169
169
|
}
|
|
170
|
-
|
|
171
|
-
await oss.put(token.path.substr(1), data, options);
|
|
170
|
+
await oss.put(token.path.substring(1), data);
|
|
172
171
|
}
|
|
173
172
|
async createReadStream(videoId, options) {
|
|
174
173
|
debug('createReadStream %s options: %o', videoId, options);
|
|
@@ -195,20 +194,19 @@ class VODAdapter {
|
|
|
195
194
|
if (options === null || options === void 0 ? void 0 : options.start)
|
|
196
195
|
throw new Error('fsd-vod read stream does not support start options');
|
|
197
196
|
let token = await this.createUploadTokenWithAutoRefresh(videoId);
|
|
198
|
-
let oss = new
|
|
197
|
+
let oss = new simple_oss_client_1.default(token.auth);
|
|
199
198
|
let stream = new stream_1.PassThrough();
|
|
200
|
-
|
|
199
|
+
oss.put(token.path.substring(1), stream);
|
|
201
200
|
return stream;
|
|
202
201
|
}
|
|
203
202
|
async initMultipartUpload(videoId, partCount) {
|
|
204
203
|
debug('initMultipartUpload %s, partCount: %d', videoId, partCount);
|
|
205
204
|
let token = await this.createUploadTokenWithAutoRefresh(videoId);
|
|
206
|
-
let oss = new
|
|
207
|
-
let
|
|
208
|
-
let { uploadId } = res;
|
|
205
|
+
let oss = new simple_oss_client_1.default(token.auth);
|
|
206
|
+
let { UploadId } = await oss.initMultipartUpload(token.path.substring(1));
|
|
209
207
|
let files = [];
|
|
210
208
|
for (let i = 1; i <= partCount; i += 1) {
|
|
211
|
-
files.push(`task://${
|
|
209
|
+
files.push(`task://${UploadId}?${i}`);
|
|
212
210
|
}
|
|
213
211
|
return files;
|
|
214
212
|
}
|
|
@@ -217,19 +215,20 @@ class VODAdapter {
|
|
|
217
215
|
if (!partTask.startsWith('task://'))
|
|
218
216
|
throw new Error('Invalid part task id');
|
|
219
217
|
let token = await this.createUploadTokenWithAutoRefresh(videoId);
|
|
220
|
-
let oss = new
|
|
218
|
+
let oss = new simple_oss_client_1.default(token.auth);
|
|
221
219
|
let [uploadId, no] = partTask.replace('task://', '').split('?');
|
|
222
|
-
let res = await oss.
|
|
223
|
-
|
|
224
|
-
|
|
220
|
+
let res = await oss.uploadPart(token.path.substring(1), uploadId, parseInt(no), data, {
|
|
221
|
+
headers: {
|
|
222
|
+
'Content-Length': String(size)
|
|
223
|
+
}
|
|
225
224
|
});
|
|
226
|
-
let etag = res.
|
|
225
|
+
let etag = res.headers.get('ETag').replace(/"/g, '');
|
|
227
226
|
return `${partTask.replace('task://', 'part://')}#${etag}`;
|
|
228
227
|
}
|
|
229
228
|
async completeMultipartUpload(videoId, parts) {
|
|
230
229
|
debug('completeMultipartUpload %s', videoId);
|
|
231
230
|
let token = await this.createUploadTokenWithAutoRefresh(videoId);
|
|
232
|
-
let oss = new
|
|
231
|
+
let oss = new simple_oss_client_1.default(token.auth);
|
|
233
232
|
let uploadId = parts[0].replace('part://', '').split('?')[0];
|
|
234
233
|
debug('update id: %s, target: %s', uploadId, token.path);
|
|
235
234
|
let datas = parts.map((item, key) => ({
|
|
@@ -248,7 +247,7 @@ class VODAdapter {
|
|
|
248
247
|
async unlink(videoId) {
|
|
249
248
|
debug('unlink %s', videoId);
|
|
250
249
|
if (videoId[0] === '/')
|
|
251
|
-
videoId = videoId.
|
|
250
|
+
videoId = videoId.substring(1);
|
|
252
251
|
let params = {
|
|
253
252
|
VideoIds: videoId
|
|
254
253
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fsd-vod",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Aliyun OSS adapter for fsd",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@alicloud/pop-core": "^1.7.12",
|
|
16
|
-
"akita": "^1.0.
|
|
17
|
-
"ali-oss": "^6.17.1",
|
|
16
|
+
"akita": "^1.0.4",
|
|
18
17
|
"debug": "^4.3.4",
|
|
18
|
+
"fsd-oss": "^0.11.1",
|
|
19
19
|
"lru-cache": "^6.0.0"
|
|
20
20
|
},
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "5f39a56e4f5ae28e6f15c7888413561a924b54de"
|
|
22
22
|
}
|