-
Notifications
You must be signed in to change notification settings - Fork 16
/
ossTriggerHandler.js
35 lines (32 loc) · 1.15 KB
/
ossTriggerHandler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'use strict';
const oss = require('ali-oss').Wrapper;
module.exports = (event, context, callback) => {
const parsedEvent = JSON.parse(event);
const ossEvent = parsedEvent.events[0];
// Required by OSS sdk: OSS region is prefixed with "oss-", e.g. "oss-cn-shanghai"
const ossRegion = `oss-${ossEvent.region}`;
// Create oss client.
const client = new oss({
region: ossRegion,
bucket: ossEvent.oss.bucket.name,
// Credentials can be retrieved from context
accessKeyId: context.credentials.accessKeyId,
accessKeySecret: context.credentials.accessKeySecret,
stsToken: context.credentials.securityToken
});
const objKey = ossEvent.oss.object.key;
console.log('Getting object: ', objKey);
client.get(objKey).then(function(val) {
const newKey = objKey.replace('source/', 'processed/');
return client.put(newKey, val.content).then(function (val) {
console.log('Put object:', val);
callback(null, val);
}).catch(function (err) {
console.error('Failed to put object: %j', err);
callback(err);
});
}).catch(function (err) {
console.error('Failed to get object: %j', err);
callback(err);
});
};