This repository has a development and master branch. If you want to use it, please use the master branch
As long as the repository is not in a suspended state, someone will maintain and develop it all the time, please use it with confidence
c c++ 存储服务 c c++ 文件存储服务
c c++ file storage service
This is an api gateway for uploading and downloading.
The service is for users who have business needs for upload and download services (such as developers who need to upload and download servers).
This server is more inclined to storestorage transfer and API Manage interface
best storage service for http,batter than nginx and more convenient to manage,more concise code. On going maintenance
The purpose of development and implementation based on libXEngine is a cross-platform network storage service
you must install XEngine,need V7.38 or above,install XEngine can be refer to xengine Readme docment
git clone https://gitee.com/xyry/libxengine.git or git clone https://github.com/libxengine/xengine.git
window Exection XEngine_WINEnv.bat
Linux Exection:sudo ./XEngine_LINEnv.sh -i 3
Macos Exection:./XEngine_LINEnv.sh -i 3
use vs open and compile,suport windows 7sp1 and above
Just Run it,use XEngine_AuthorizeApp
use makefile compile,UBUNTU20.04 x64 or CENTOS8 x64
Run it on the terminal
use makefile compile,mac 12 and above
Run it on the terminal
execute command in XEngine_Source path
make FLAGS=InstallAll install
make FLAGS=CleanAll clear
The Second pass is not realized by the server, it is by the client
upload file second pass is first check the HASH file is on the server, if has file on the server, it will directly prompt the upload is successful.
The realization of downloading second transmission is to first query the local file save path through HASH, and download it directly if it exists.
P2P distributed download has been supported, but currently only in the lan,cross-network segment is not supported for the time being, you need to wait for the development to be completed
P2P distributed download is the same as the hyper-threaded download of other download tools. The principle is to use the HTTP RANGE field. You can implement this function through libraries such as libcurl.
UPLoad File: curl -d 'hello xengine' -X POST "http://192.168.1.8:5102/api?filename=hello.txt&storeagekey=storagekey1"
Download File: curl -X GET "http://192.168.1.8:5101/storagekey1/hello.txt"
P2P WAN file search and download support
Modify the configuration file to what you need, and then run the service directly
Advanced functions require the support of MYSQL. After installing MYSQL, import XEngine_SQLFile/XStorage_Create.sql and then import XEngine_Storage.sql.
If it is an upgrade installation, after downloading the new version and modifying the configuration file, it can be run directly
If you use a database, you need to open the database matching fields and tables are consistent
You can refer to the document under the docment directory. It contains API protocol and service description.
When the jsoncpp module is used, the compilation runtime library selection must be consistent
Port:HTTP Center Port 5100,Download 5101,UPLoad 5102
If you think this software is helpful to you, please give us a START
if you have eny quest.post issues...
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容，可点击提交进行申诉，我们将尽快为您处理。
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.