我正在构建一个简单的API,从第三方CDN (云文件)下载文件。ColdFusion目前正在成功获取该文件,通过使用CfContent和cfheader,该文件可供下载,并可供调用该接口的人员下载。
我的问题是这些文件是安全的文件,所以我不能使用直接链接到CDN,这些文件的范围从50MB到5 5GB。因此,由于这两个问题,当我使用CfHTTP从CDN获取文件时,然后执行以下操作
<cfcontent type="MMIETYPE" variable="#CFHTTP.FileContent#" >我感到困惑的是,ColdFusion就像一个中间服务器,它从CDN获取文件并将其传递给用户,还是将整个文件下载到内存中,然后将其流式传输给用户。
如果是后者,那么我如何让它充当中间服务器?
发布于 2010-07-19 14:41:01
使用cfhttp下载该文件。在不下载文件并将其重新服务于最终用户的情况下隐藏CDN的URI的方法不多。
如果使用HTTP 301或302状态代码,大多数最终用户将无法知道文件所在的位置。
301是永久重定向,302是临时重定向。不同之处在于一些浏览器缓存301,以便用户在第二次请求URI时不必再次访问您的服务器。
你可以简单地做到这一点
<cfheader statuscode="301" statustext="Moved permanently" />
<cfheader name="Location" value="#CDN_URI#" />
<cfabort />或
<cfheader statuscode="302" statustext="Moved Temporarily" />
<cfheader name="Location" value="#CDN_URI#" />
<cfabort />您还可以使用cflocation,它默认使用302,但可以使用statusCode属性使其使用另一个状态代码。
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_j-l_04.html
https://stackoverflow.com/questions/3278510
复制相似问题