【问题标题】:Upload Files To S3 from Browser and Secure AWS Creds将文件从浏览器上传到 S3 并保护 AWS 凭据
【发布时间】:2021-05-29 18:34:15
【问题描述】:

我正在 ASP.net MVC 中开发一个小型应用程序,在其中我直接从浏览器将文件上传到 s3,下面是我的代码,但问题是因为它在 JavaScript 中我的 访问密钥和密钥 是暴露的,有什么方法可以隐藏它,或者有没有其他方法可以在不暴露 访问密钥和密钥 的情况下将文件上传到 s3,我只能从浏览器上传文件.

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.24.min.js"></script>
<script>
     
    //AWS access info
    AWS.config.update({
        accessKeyId: '************************',
        secretAccessKey: '***********************'
    });


    AWS.config.region = 'us-west-2';

    $(document).ready(function () {
        $("#uploadForm").submit(function () {
            var bucket = new AWS.S3({ params: { Bucket: '*************' } });
            var uploadFiles = $('#upFile')[0];
            var upFile = uploadFiles.files[0];
            if (upFile) {
                
                var uploadParams = { Key: upFile.name, ContentType: upFile.type, Body: upFile, 'Access-Control-Allow-Credentials': '*' };
                bucket.upload(uploadParams).on('httpUploadProgress', function (evt) {
                    console.log("File Uploading: " + parseInt((evt.loaded * 100) / evt.total) + '%');
                }).send(function (err, data) {
                    
                });
            }
            return false;
        });
    });
</script>

 
<div class="container body-content">
    <form id="uploadForm" method='post' enctype="multipart/form-data">
        <h3>Upload File</h3><br />
        <input type='file' name="upFile" id="upFile" required="" />
        <br>
        <input type='submit' value='Upload' />
    </form>

【问题讨论】:

    标签: asp.net asp.net-mvc amazon-s3 aws-sdk-net aws-java-sdk-dynamodb


    【解决方案1】:

    在服务器端执行上传逻辑。有一个 .net、java、python、c++、ruby 等实现连接到亚马逊 AWS,具体取决于您使用的任何后端。

    【讨论】:

    • 感谢您的回复,但那将是我最后的选择。我想直接将文件从浏览器上传到 S3
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多