我查看了vibe-d-0.7.28
的源代码,但fileserver.d
并未显示有关此问题的任何内容。实际上,sendFileImpl()
函数是该作业的主要实现,并且没有对字节范围标题的任何引用。
你知道这是支持还是有效?
答案 0 :(得分:0)
由于#1634这是可能的:
#!/usr/bin/env dub
/+ dub.sdl:
name "mini_vibed"
dependency "vibe-d" version="~>0.8.0-beta.4"
versions "VibeDefaultMain"
+/
import vibe.d;
shared static this()
{
auto settings = new HTTPServerSettings;
settings.port = 8080;
auto router = new URLRouter;
router.get("/full_file", (scope req, scope res) {
auto inStream = openFile(__FILE_FULL_PATH__);
res.bodyWriter.write(inStream);
});
router.get("/partial_file", serveStaticFile(__FILE_FULL_PATH__));
router.get("*", (scope req, scope res) {
res.writeBody("Please try /full_file or /partial_file");
});
listenHTTP(settings, router);
}
文件chmod +x
或使用dub --single
运行。
您可以使用curl
对其进行测试:
curl --header "Range: bytes=0-200" localhost:8080/full_file
curl --header "Range: bytes=0-200" localhost:8080/partial_file