通过 ASP.NET 使用 S3 服务器端 CORS 的 Fine Uploader
Posted
技术标签:
【中文标题】通过 ASP.NET 使用 S3 服务器端 CORS 的 Fine Uploader【英文标题】:Fine Uploader for S3 server side CORS via ASP.NET usage 【发布时间】:2013-12-12 04:19:15 【问题描述】:我正在将 s3demo-cors.php 示例代码的工作副本转换为 ASP.NET。我试图了解在哪些情况下需要 CORS 处理。例如,我看到 PHP 代码在尝试删除对象之前调用了 handleCorsRequest()。为什么运行 PHP 代码以删除 S3 上的对象的服务器需要任何 CORS 标头?还是脚本运行完成后客户端使用的那些标头?我可能对何时以及如何需要 CORS 标头感到生疏,但据我了解,它们适用于客户端 javascript,因此它可以直接从浏览器处理 S3,而不是服务器可以与 S3 对话。此外,对于删除对象功能,采取了哪些安全措施,以便对进入 S3 上删除对象的请求进行身份验证?也许我错过了代码中第一次授权删除请求的位置?是因为客户端只知道他们上传的对象的键值吗?什么是别人下载的文件,并且可以看到key值,他们可以提交删除对象的请求吗?谢谢。
【问题讨论】:
【参考方案1】:如果您的签名服务器或删除文件处理程序服务器和上传器实例/页面托管在同一源上,则无需担心 CORS。如果您处理删除文件请求和/或签名请求的端点与托管您的上传页面的端点不同,那么您将需要处理 CORS。
如果您在跨域环境中工作,那么您必须在服务器响应中适当地确认跨域请求。
就身份验证/安全而言,这是您的责任。您的网络应用程序应该已经处理了这个问题。
【讨论】:
我们的上传页面和处理签名/删除/成功的页面都在同一个域和服务器上,我认为这意味着我们不必担心 CORS。但是,当客户端代码需要与 S3 通信时,那里不需要使用某种类型的 CORS 吗?我们需要配置我们的 S3 存储桶以接受我们的域是吗?除此之外,Fine Uploader javascript 处理其余部分?谢谢。以上是关于通过 ASP.NET 使用 S3 服务器端 CORS 的 Fine Uploader的主要内容,如果未能解决你的问题,请参考以下文章
我可以通过 ASP.NET 将对象从客户端 javascript 发送到服务器端代码吗?
在 ASP.NET 中,如何通过一个表单提交在客户端(javascript)和服务器端处理数据?
无法通过 asp.net 核心服务器端将 ~200mb 文件上传到 azure blob 存储