-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy paths3files.js
More file actions
80 lines (71 loc) · 2.46 KB
/
s3files.js
File metadata and controls
80 lines (71 loc) · 2.46 KB
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
'use strict';
const AWS = require('aws-sdk');
var s3 = new AWS.S3( { params: {Bucket: 'www-static.aws.roorkee.org', region: 'us-east-1'}});
module.exports.upload = async (event) => {
let createResponse = (respObject, httpCode) => {
return {
statusCode: httpCode,
body: JSON.stringify(respObject),
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, DELETE',
"Access-Control-Allow-Credentials" : true,
'Version':'17.10.15.4'
}
}
}
let uploadFile = async(event) => {
let parsedBody = JSON.parse(event.body);
let buf = new Buffer(parsedBody.data.replace(/^data:image\/\w+;base64,/, ""),'base64');
var params = {
Key: parsedBody.name,
Body: buf,
ContentEncoding: parsedBody.type
};
try{
var resp = await s3.putObject(params).promise();
console.log(JSON.stringify(resp));
return createResponse(resp, 200);
}
catch(err){
console.log(JSON.stringify(err));
return createResponse(err, 415)
}
}
let getFilesList = async(event) => {
var folder = `${event.pathParameters.env}/up/usr/${event.pathParameters.id}/`;
console.log(`Folder ${folder}`);
var params = {
Delimiter: '/',
Prefix: folder,
Bucket: 'www-static.aws.roorkee.org'
}
try{
var listResp = await s3.listObjectsV2(params).promise();
let files = [];
if (listResp && listResp.Contents && listResp.Contents.length > 0){
listResp.Contents.forEach(element => {
if (element.Size > 0){
files.push(element);
}
});
}
return createResponse(files, 200);
}
catch(err){
console.log(JSON.stringify(err));
return createResponse(err, 415)
}
}
if (event.httpMethod == 'POST'){
return await uploadFile(event);
}
else if (event.httpMethod == 'GET'){
return await getFilesList(event);
}
else{
return createResponse({'message':'Unsupported HTTP method'}, 405)
}
};