通过AWS Lambda

时间:2018-04-16 20:01:49

标签: javascript html ajax amazon-web-services aws-lambda

我一直在使用简单的AWS Lamda函数及其SES服务来创建网站联系表单。 我在HTML中创建一个简单的表单,然后将输入的信息转换为JSON字符串对象并通过电子邮件发送给站点所有者。 现在我想添加上传不同文件的功能,我打算使用类似的方法来附加文件并使用AWS Lambda和SES通过电子邮件发送它。 这是我目前的状态和代码。

以下是我用来创建JSON对象的代码,我稍后通过AWS Lambda发送电子邮件

$(document).ready(function() {

                $("#submit2").click(function(e) {
                    e.preventDefault();

                    var Firstname = $("#Firstname").val(),
                        Lastname = $("#Lastname").val(),
                        email = $("#email").val(),
                        phone = $("#Phone").val(),
                        address = $("#Address").val(),
                        backSplash = $("#BackSplash").val(),
                        material = $("#Material").val(),
                        message = $("#subject").val();

                    $.ajax({
                        type: "POST",
                        url: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
                        contentType: 'application/json',
                        data: JSON.stringify({
                            'name': Firstname + " " + Lastname,
                            'phone':phone,
                            'address': address,
                            'email': email,
                            'backSplash' : backSplash,
                            'material': material,
                            'message': message
                        }),
                        success: function(res){
                            $('#form-response').text('Your Message Has been sent.');
                        },
                        error: function(){
                            $('#form-response').text('Error, Message was not sent, please try again.');
                        }
                    });

                })

            });`

就上传文件而言,这是我当前的代码

            function getFiles(){

                    var files = document.getElementById("myFiles").files;
                    var myArray = [];
                    var file = {};

                    console.log(files); // see the FileList

                    // manually create a new file obj for each File in the FileList
                    for(var i = 0; i < files.length; i++){
                      //console.log(files[i].name);
                      file = {
                          'lastMod'    : files[i].lastModified,
                          'lastModDate': files[i].lastModifiedDate,
                          'name'       : files[i].name,
                          'size'       : files[i].size,
                          'type'             : files[i].type,
                      } 
                      //add the file obj to your array
                      myArray.push(file)
                    }
                        //save the array to localStorage
                      localStorage.setItem('files',JSON.stringify(myArray));
                      console.log(JSON.stringify(myArray));
                  }
                    });

如何将上传的文件添加到我传递给AWS Lamda函数的数据对象中?以及如何允许网站所有者访问它?

1 个答案:

答案 0 :(得分:1)

您最好的选择可能是将文件上传到S3存储桶,然后生成一个预先签名的网址,然后通过电子邮件发送给应该接收该网址的人。

https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html