当前位置: 首页 > 知识库问答 >
问题:

上载到S3而不暴露您的accessKeyId

凤柏
2023-03-14

我有一个web应用程序,它使用firebase进行身份验证和数据库,使用Angular4进行前端。我正在上传图像到AWS3通过我的网络应用程序和它的工作良好。

我目前正在使用angular4代码中的accessKeyId和secretAccessKey将文件直接上传到AWS S3(使用AWS SDK for javascript)。编译angular后,客户端浏览器仍然在前端使用javascript。我不喜欢这样,这会给我带来安全风险。

我如何从Angular4直接上传图像到S3而不暴露我的密钥?

共有1个答案

伯博
2023-03-14

创建一个可以生成AWS3预签名URL的小型后端服务/API。然后,您的Angular应用程序可以使用预签名的URL将图像上传到S3。后端服务将是唯一需要您的AWS访问权限的东西。

AWS Lambda+API网关对于这种后端服务来说是完美的。

 类似资料:
  • 我已经看过了官方文档和许多关于和配置之间区别的StackOverflow问题。我想我理解基本的,但我真的想理解依赖项暴露或不暴露意味着什么。 这就是我目前所得到的。当我发布我的Java库(用Kotlin编写,但不相关)时,发布的文件中的依赖范围要么是使用时的要么是使用时的。 那么在这种情况下公开依赖项真的只是意味着将它们添加到类路径(编译范围)吗? 关于和的许多答案之一是,它仅仅是关于构建优化,如

  • 我在库中公开了一个方法,该方法返回一个CompletableFuture。该方法的计算发生在单线程执行器上,这是我的瓶颈,因此我不希望任何后续工作发生在同一个线程上 如果我使用返回“SupplySync”结果的简单方法,我将向调用者公开我宝贵的线程,调用者可能会添加同步操作(例如通过Accept),这可能会在该线程上花费一些CPU时间 复制如下: 这确实打印出: 我发现的一个解决方案是引入另一个执

  • 主要内容:1.概述,2.doExportUrls,3. Protocol1.概述 Dubbo 服务暴露有两种方式 本地暴露,JVM 本地调用。配置如下: <dubbo:service scope=“local” /> <dubbo:service scope=“remote” /> 在不配置 scope 的情况下,默认两种方式都暴露。 2.doExportUrls 本地暴露服务的顺序图如下: 我们看到 ServiceConfig#export() 方法中,会在配置初始

  • 3.3. 数据的暴露 关于数据库,另外需要关心的一点是敏感数据的暴露。不管你是否保存了信用卡号,社会保险号,或其它数据,你还是希望确认数据库是安全的。 虽然数据库安全已经超出了本书所讨论的范围(也不是PHP开发者要负责的),但是你可以加密最敏感的数据,这样只要密钥不泄露,数据库的安全问题就不会造成灾难性的后果。(关于加密的详细介绍参见本书附录C) 要看图的话,请至技术文档区下载原版chm http

  • 如果你的服务需要预热时间,比如初始化缓存,等待相关资源就位等,可以使用 delay 进行延迟暴露。我们在 Dubbo 2.6.5 版本中对服务延迟暴露逻辑进行了细微的调整,将需要延迟暴露(delay > 0)服务的倒计时动作推迟到了 Spring 初始化完成后进行。你在使用 Dubbo 的过程中,并不会感知到此变化,因此请放心使用。 Dubbo-2.6.5 之前版本 延迟到 Spring 初始化完

  • EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]。 EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,