如何在 Linux 中快速地通過 HTTP 提供文件訪問服務

如何在 Linux 中快速地通過 HTTP 提供文件訪問服務

轉自:https://linux.cn/article-10205-1.html

如今,我有很多方法來通過 Web 瀏覽器為局域網中的其他系統提供單個文件或整個目錄的訪問。我在我的 Ubuntu 測試機上測試了這些方法,它們如下面描述的那樣運行正常。如果你想知道如何在類 Unix 操作系統中通過 HTTP 輕松快速地提供文件和文件夾的訪問服務,以下方法之一肯定會有所幫助。

免責聲明:此處給出的所有方法適用于安全的局域網。由于這些方法沒有任何安全機制,因此不建議在生產環境中使用它們。你注意了!

方法 1 - 使用 simpleHTTPserver(Python)

我們寫了一篇簡要的指南來設置一個簡單的 http 服務器,以便在以下鏈接中即時共享文件和目錄。如果你有一個安裝了 Python 的系統,這個方法非常方便。

  • 如何使用 simpleHTTPserver 設置一個簡單的文件服務器

轉載者注:

在想要共享的目錄下:

python -m http.server 8000

即可。

方法 2 - 使用 Quickserve(Python)

此方法針對 Arch Linux 及其衍生版。有關詳細信息,請查看下面的鏈接。

  • 如何在 Arch Linux 中即時共享文件和文件夾

方法 3 - 使用 Ruby

在此方法中,我們使用 Ruby 在類 Unix 系統中通過 HTTP 提供文件和文件夾訪問。按照以下鏈接中的說明安裝 Ruby 和 Rails。

  • 在 CentOS 和 Ubuntu 中安裝 Ruby on Rails

安裝 Ruby 后,進入要通過網絡共享的目錄,例如 ostechnix:

$ cd ostechnix

并運行以下命令:

$ ruby -run -ehttpd . -p8000[2018-08-10 16:02:55] INFO WEBrick 1.4.2[2018-08-10 16:02:55] INFO ruby 2.5.1 (2018-03-29) [x86_64-linux][2018-08-10 16:02:55] INFO WEBrick::HTTPServer#start: pid=5859 port=8000

確保在路由器或防火墻中打開端口 8000。如果該端口已被其他一些服務使用,那么請使用不同的端口。

現在你可以使用 URL 從任何遠程系統訪問此文件夾的內容 - http:// <ip-address>:8000。要停止共享,請按 CTRL+C

方法 4 - 使用 Http-server(NodeJS)

Http-server 是一個用 NodeJS 編寫的簡單的可用于生產環境的命令行 http 服務器。它不需要配置,可用于通過 Web 瀏覽器即時共享文件和目錄。

按如下所述安裝 NodeJS。

  • 如何在 Linux 上安裝 NodeJS

安裝 NodeJS 后,運行以下命令安裝 http-server。

$ npm install -g http-server

現在進入任何目錄并通過 HTTP 共享其內容,如下所示。

$ cd ostechnix$ http-server -p 8000Starting up http-server, serving ./Available on: http://127.0.0.1:8000 http://192.168.225.24:8000 http://192.168.225.20:8000Hit CTRL-C to stop the server

現在你可以使用 URL 從任何遠程系統訪問此文件夾的內容 - http:// <ip-address>:8000。要停止共享,請按 CTRL+C

方法 5 - 使用 Miniserve(Rust)

Miniserve 是另一個命令行程序,它允許你通過 HTTP 快速訪問文件。它是一個非常快速、易于使用的跨平臺程序,它用 Rust 編程語言編寫。與上面的程序/方法不同,它提供身份驗證支持,因此你可以為共享設置用戶名和密碼。

按下面的鏈接在 Linux 系統中安裝 Rust。

  • 在 Linux 上安裝 Rust 編程語言

安裝 Rust 后,運行以下命令安裝 miniserve:

$ cargo install miniserve

或者,你可以在其發布頁下載二進制文件并使其可執行。

$ chmod +x miniserve-linux

然后,你可以使用命令運行它(假設 miniserve 二進制文件下載到當前的工作目錄中):

$ ./miniserve-linux <path-to-share>

用法

要提供目錄訪問:

$ miniserve <path-to-directory>

示例:

$ miniserve /home/sk/ostechnix/miniserve v0.2.0Serving path /home/sk/ostechnix at http://[::]:8080, http://localhost:8080Quit by pressing CTRL-C

現在,你可以在本地系統使用 URL – http://localhost:8080 訪問共享,或者在遠程系統使用 URL – http://<ip-address>:8080 訪問。

要提供單個文件訪問:

$ miniserve <path-to-file>

示例:

$ miniserve ostechnix/file.txt

帶用戶名和密碼提供文件/文件夾訪問:

$ miniserve --auth joe:123 <path-to-share>

綁定到多個接口:

$ miniserve -i 192.168.225.1 -i 10.10.0.1 -i ::1 -- <path-to-share>

如你所見,我只給出了 5 種方法。但是,本指南末尾附帶的鏈接中還提供了幾種方法。也去測試一下它們。此外,收藏并時不時重新訪問它來檢查將來是否有新的方法。

今天就是這些。希望這篇文章有用。還有更多的好東西。敬請期待!

干杯!


via: https://www.ostechnix.com/how-to-quickly-serve-files-and-folders-over-http-in-linux/

作者:SK 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532513.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux apt命令

Linux apt命令及其與apt-get的關系 轉自&#xff1a;https://blog.csdn.net/taotongning/article/details/82320472、https://www.runoob.com/linux/linux-comm-apt.html apt&#xff08;Advanced Packaging Tool&#xff09;是一個在 Debian 和 Ubuntu 中的 Shell 前端軟件包管…

楊宏宇:騰訊多模態內容理解技術及應用

楊宏宇&#xff1a;騰訊多模態內容理解技術及應用 分享嘉賓&#xff1a;楊宇鴻 騰訊 內容理解高級工程師 編輯整理&#xff1a;吳祺堯 出品平臺&#xff1a;DataFunTalk 導讀&#xff1a; 搜索內容的理解貫穿了整個搜索系統。我們需要從多個粒度理解搜索內容&#xff0c;包括語…

git登錄相關操作梳理

git登錄相關操作梳理 本文主要基于 Linux/Mac &#xff0c;Windows下未經測試&#xff0c;不過估計差不多&#xff0c;在 git bash 內操作即可。 創建ssh key并關聯github等賬號 因為本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密傳輸的&#xff0c;GitHub需要識別是否是…

關于mmdetection上手的幾點說明

關于mmdetection上手的幾點說明 官方的文檔很有參考價值&#xff0c;并且也有中文版&#xff0c;應當是大家上手 mmdetection 的第一參考&#xff0c;本文是記錄一些筆者在小白階段上手 mmdetection 時的一些心得&#xff0c;這些東西沒有人提&#xff0c;可能是大佬們覺得這些…

docker gpu報錯Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

Docker容器中使用Nvidia GPU報錯 docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]. 問題出現 我們知道&#xff0c;想要在 docker19 及之后的版本中使用 nvidia gpu 已經不需要單獨安裝 nvidia-docker 了&#xff0c;這…

CUDA環境詳解

CUDA環境詳解 本文主要介紹 CUDA 環境&#xff0c;這一堆東西網上有很多博客介紹過了&#xff0c;我再來一篇:)&#xff0c;參考前輩們的文章&#xff0c;看能不能寫的更清楚一點。讀后仍有問題&#xff0c;歡迎留言交流。 CUDA APIs CUDA是由NVIDIA推出的通用并行計算架構&…

共享內存簡介及docker容器的shm設置與修改

共享內存簡介及docker容器的shm設置與修改 共享內存簡介 共享內存指 (shared memory)在多處理器的計算機系統中&#xff0c;可以被不同中央處理器&#xff08;CPU&#xff09;訪問的大容量內存。由于多個CPU需要快速訪問存儲器&#xff0c;這樣就要對存儲器進行緩存&#xff…

對Docker鏡像layer的理解

對Docker鏡像layer的理解 轉自&#xff1a;https://blog.csdn.net/u011069294/article/details/105583522 FROM python:3.6.1-alpine RUN pip install flask CMD [“python”,“app.py”] COPY app.py /app.py上面是一個Dockerfile的例子&#xff0c;每一行都會生成一個新的l…

ssh免密登錄配置方法及配置

ssh免密登錄配置方法及配置 直接上步驟&#xff0c;記我們本機為機器A&#xff0c;而機器B、機器C等是我們的服務器&#xff0c;我們要配置的是A到B、C等的 ssh 免密登錄。 1 在機器A上生成秘鑰對 ssh-keygen會得到輸出&#xff1a; Generating public/private rsa key pai…

機器學習系統:設計與實現 計算圖

機器學習系統:設計與實現 計算圖 轉自&#xff1a;https://openmlsys.github.io/chapter_computational_graph/index.html 在上一章節中&#xff0c;我們展示了用戶利用機器學習框架所編寫的程序。這些用戶程序包含了對于訓練數據&#xff0c;模型和訓練過程的定義。然而為了…

常見浮點數格式梳理

常見浮點數格式梳理 IEEE 754 標準 浮點數轉換網站&#xff1a;https://www.h-schmidt.net/FloatConverter/IEEE754.html IEEE二進制浮點數算術標準&#xff0c;為許多CPU與浮點運算器所采用。這個標準定義了表示浮點數的格式&#xff08;包括負零-0&#xff09;與反常值&am…

Python拾遺1:collections、itertools和內存io

Python拾遺1&#xff1a;collections、itertools和內存io 轉自&#xff1a;https://www.liaoxuefeng.com/wiki/1016959663602400 本系列旨在補充python中一些很好用但是并非常規課程主線中的知識。 collections collections是Python內建的一個集合模塊&#xff0c;提供了許…

混合精度訓練

混合精度訓練 轉自&#xff1a;https://zhuanlan.zhihu.com/p/441591808 通常我們訓練神經網絡模型的時候默認使用的數據類型為單精度FP32。近年來&#xff0c;為了加快訓練時間、減少網絡訓練時候所占用的內存&#xff0c;并且保存訓練出來的模型精度持平的條件下&#xff0…

拓撲排序C++

拓撲排序C 幾個基本概念的介紹 入度和出度 圖中的度&#xff1a;所謂頂點的度(degree)&#xff0c;就是指和該頂點相關聯的邊數。在有向圖中&#xff0c;度又分為入度和出度。 入度 (in-degree) &#xff1a;以某頂點為弧頭&#xff0c;終止于該頂點的邊的數目稱為該頂點的…

C++面試常考題——編譯內存相關

C面試常考題——編譯內存相關 轉自&#xff1a;https://leetcode-cn.com/leetbook/read/cpp-interview-highlights/e4ns5g/ C程序編譯過程 編譯過程分為四個過程&#xff1a;編譯&#xff08;編譯預處理、編譯、優化&#xff09;&#xff0c;匯編&#xff0c;鏈接。 編譯預處…

C++遍歷刪除元素

C遍歷刪除元素 轉自&#xff1a;http://zencoder.info/2019/10/11/erase-element-from-container/ 今天看到一個patch fix從std::map中遍歷刪除元素導致crash問題&#xff0c;突然意識到自己對如何正確地從map等C容器中刪除元素也沒有很牢固清醒的認知。重新梳理了下這塊的正…

關鍵字庫函數

關鍵字庫函數 轉自&#xff1a;https://leetcode-cn.com/leetbook/read/cpp-interview-highlights/ej3mx1/ sizeof和strlen的區別 strlen 是頭文件<cstring> 中的函數&#xff0c;sizeof 是 C 中的運算符。 strlen 測量的是字符串的實際長度&#xff08;其源代碼如下&…

memcpy和memmove的區別以及內存重疊問題

memcpy和memmove的區別以及內存重疊問題 轉自&#xff1a;https://www.codecomeon.com/posts/89/ 區別 memcpy() 和 memmove() 都是C語言中的庫函數&#xff0c;在頭文件 string.h 中&#xff0c;作用是拷貝一定長度的內存的內容&#xff0c;原型分別如下&#xff1a; void…

從頭搭建一個深度學習框架

從頭搭建一個深度學習框架 轉自&#xff1a;Build a Deep Learning Framework From Scratch 代碼&#xff1a;https://github.com/borgwang/tinynn 當前深度學習框架越來越成熟&#xff0c;對于使用者而言封裝程度越來越高&#xff0c;好處就是現在可以非常快速地將這些框架作為…

關于python import的sys.path路徑問題

關于python import的sys.path路徑問題 sys.path 先說一下 sys.path 這個變量&#xff0c;該變量需要導入 sys 官方庫方可使用&#xff0c;它是一個列表&#xff0c;是當前 python 文件 import 庫時會逐個搜索列表中的路徑。 初始化 sys.path 從這些位置初始化&#xff1a; …