2016-06-07 3 views
0

В моем бессерверного приложения, мне нужно сгенерировать PDF динамически, а затем загрузить которые генерируются PDF в AWS-s3 ведра. Но в serverless мы можем отправить запрос json, поэтому я отправил свою строку html на сервер без сервера, он сгенерировал PDF и затем сохранил полученный PDF-файл на локальном компьютере. Я думаю, эта часть, которую я могу сделать, Но моя проблема в том, что мне нужно загрузить этот недавно созданный pdf-файл в aws-s3. Мой код приведен ниже:загрузить PDF файл из локальной системы AWS-s3

Угловой Код:

$scope.generate_pdf = function() { 

    var html = angular.element('html').html(); 

    var service = API.getService(); // sent html string as json for generating pdf 
    service.downloadPdf({}, { html : html }, 
     function(res) { 
      console.log("res : ", res); // res.url: /tmp/dynamica-generate.pdf 
             // pdf is saved into '/tmp' folder 
            // now I want to upload pdf from '/tmp' folder to aws-s3 


     }, function(err) { 
      console.log("err : ", err); 
     }); 

}; 

Как я могу решить эту проблему, спасибо заранее.

+1

Нужно ли загружать его с локального на S3 или непосредственно на S3 вместо локального? – error2007s

+0

Загрузить pdf из локального '/ tmp/some-generated-file.pdf' в S3 – sabbir

+0

Если вы создаете файл PDF удаленно с помощью безсерверной функции Lambda, почему бы и не загрузить его прямо на S3? –

ответ

0

Если вы хотите загрузить файл с вашей локальной машины в ведро S3. Установите AWS Cli на ваш локальный компьютер. после того, как это будет сделано, добавить задание для этой команды

aws s3 sync /tmp/* s3://mybucket 
0

Вы должны быть в состоянии использовать aws Javascript S3 sdk интегрировать JS код в код angularJS.

Вы можете следовать из this blog post и github code

Его также упомянуть о настройке учетных данных с использованием открытого IAM счета. В зависимости от того, как вы обслуживаете файлы для своих клиентов, вы также можете проверить URL-адрес с предварительным подпиской.