1

在一个闪亮的应用程序中,我希望用户能够下载文件大小限制为 100MB 的远程 (.nc) 文件。

对于检查标头的某些文件效果很好,如此处建议的https://stackoverflow.com/a/20921907/6424231例如

httr::headers(httr::HEAD("https://www.unidata.ucar.edu/software/netcdf/examples/ECMWF_ERA-40_subset.nc"))[["Content-Length"]]
#> [1] "22165040"

但是对于 THREDDS 服务器上的 .nc 文件,该Content-Length属性不可用,例如

httr::headers(httr::HEAD("https://dapds00.nci.org.au/thredds/ncss/uc0/Test_pixel_count.nc?var=Band1&north=-22.9556&west=142&east=143&south=-25.0706&disableProjSubset=on&horizStride=1"))[["Content-Length"]]
#> NULL

所以在下载之前我不知道这个文件的大小。

有没有一种方法可以让我download.file()开始但如果下载达到 100MB 并且下载尚未完成则中止下载?我知道也有可用的超时选项,httr但理想情况下,我希望限制基于文件大小,因为我不希望阻止连接速度较慢的用户下载相对较小的文件。

这在 R 中是否可行,或者是否有任何其他方法可以实现这一点以避免用户下载任意大的文件?

4

0 回答 0