[英]Anyone knows if vibe.d supports HTTP Byte-Range while serve static files?
我在查看vibe-d-0.7.28
的源代碼,但fileserver.d
沒有顯示任何關於此的信息。 實際上, sendFileImpl()
函數是該作業的主要實現,並且沒有對字節范圍頭的任何引用。
你知道這是支持還是有效?
從#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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.