fileUploader.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * fileUploader
  3. */
  4. module.exports = function(app) {
  5. 'use strict';
  6. var aws = require('aws-sdk')
  7. , debug = require('debug')('crowi:lib:fileUploader')
  8. , config = app.set('config')
  9. , lib = {}
  10. ;
  11. function getAwsConfig ()
  12. {
  13. return {
  14. accessKeyId: config.crowi['aws:accessKeyId'],
  15. secretAccessKey: config.crowi['aws:secretAccessKey'],
  16. region: config.crowi['aws:region'],
  17. bucket: config.crowi['aws:bucket']
  18. };
  19. }
  20. // lib.deleteFile = function(filePath, callback) {
  21. // // TODO 実装する
  22. // };
  23. lib.uploadFile = function(filePath, contentType, fileStream, options, callback) {
  24. var awsConfig = getAwsConfig();
  25. aws.config.update({
  26. accessKeyId: awsConfig.accessKeyId,
  27. secretAccessKey: awsConfig.secretAccessKey,
  28. region: awsConfig.region
  29. });
  30. var s3 = new aws.S3();
  31. var params = {Bucket: awsConfig.bucket};
  32. params.ContentType = contentType;
  33. params.Key = filePath;
  34. params.Body = fileStream;
  35. params.ACL = 'public-read';
  36. s3.putObject(params, function(err, data) {
  37. callback(err, data);
  38. });
  39. };
  40. lib.generateS3FillUrl = function(filePath) {
  41. var awsConfig = getAwsConfig();
  42. var url = 'https://' + awsConfig.bucket +'.s3.amazonaws.com/' + filePath;
  43. return url;
  44. };
  45. return lib;
  46. };