【问题标题】:Downloading files from box.com using content api, GZIP使用 content api、GZIP 从 box.com 下载文件
【发布时间】:2014-07-24 16:35:08
【问题描述】:

我在 Box.com 网站上有一个 6mb 的 txt 文件。 现在我想使用 api 下载文件。由于下载需要时间,我想将其下载为 gzip 文件。 如此处https://developers.box.com/docs/ 给出的,我们必须添加带有值“gzip,deflate”的接受编码标头。我已经添加了这个头文件,但是文件不是作为 zip 文件下载的,它的大小与 6mb 相同,如果是压缩的,那么它的大小应该小于 1mb。

但这并没有发生。以下是 REST 请求中传递的标头。

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)                      Chrome/36.0.1985.125 Safari/537.36
Authorization: Bearer ACCESSTOKEN
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,te;q=0.6

以下是响应标头。

Server: nginx 
Date: Thu, 24 Jul 2014 16:24:56 GMT 
Content-Type: application/octet-stream 
Content-Length: 6685772 
Connection: keep-alive
Cache-control: private
Accept-Ranges: bytes
Content-Disposition: attachment;filename="abc.log";filename*=UTF-8''  
X-Content-Type-Options: nosniff
Accept-Ranges: bytes 

这里有什么我错过的吗?

【问题讨论】:

    标签: box


    【解决方案1】:

    我也遇到了同样的问题。但是,我也意识到为什么会发生这种情况。引用Box SDK documentation

    如果文件可供下载,则响应为 302 在 dl.boxcloud.com 上找到一个 URL。 dl.boxcloud.com URL 不是 执着的。客户需要遵循重定向才能 实际下载文件。返回文件的原始数据 除非文件 ID 无效或用户无权访问它。

    需要注意的重要一点是,为了下载文件,客户端会重定向到非永久性 URL。当我们检查作为重定向请求的一部分传递的标头序列时,您可以看到 Accept-Encoding: gzip deflate 丢失了。我用 Fiddler 试了一下,你可以使用任何其他 HTTP 代理或拦截器。

    这应该是没有使用 gzip 编码下载文件的原因。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      相关资源
      最近更新 更多