内网穿透,远程网盘,网站外挂资源,可嵌入到页面的网盘资源解决方案

这篇具有很好参考价值的文章主要介绍了内网穿透,远程网盘,网站外挂资源,可嵌入到页面的网盘资源解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这是一个我个人写的库,主要实现的是基于tcpclient的网站外扩网盘的解决方案,可以使用家用网络外挂个人电脑中的资源到自己的网站上,已经上传nuget,大家可以直接在nuget包管理中搜索到,直接搜索ZmjNetDisk即可,下面介绍具体的使用方式:

另外一提这个库做的比较的个人化,因为他就是为了我的网站而服务的,我的网站是store.zhaimaojun.cn,大家可以去体验一下实际的效果,也可以搜索微信小程序 什邡市宅猫君网络工作室,我做了网页版和小程序版,都是基于这个库。未来有空我可以再升级一下,改成更加泛化的,再改成多中心式的,如果有谁有资金想去搞一搞的话,弄成多中心式,就像p2p一样文件可以传输的带宽和速率就更快更好了,当然也可能不能和传统的p2p去抗衡吧,唯一的优点就是颠覆传统的网盘模式,可以把资源嵌入到页面中浏览,而不是必须在指定的页面或者客户端才能浏览。

第一步 获取和安装库

内网穿透,远程网盘,网站外挂资源,可嵌入到页面的网盘资源解决方案

第二步 服务器端和客户端开启服务

1 /**服务器开启服务,这个需要运行在网站端*/
2 var nd = new ZmjNetDisk.NetDiskServer(new ZmjNetDisk.NetDiskServerConfig { Ip = "0.0.0.0", Port = 11111, });//端口可以随意根据自己需求
3 nd.StartListen();//必须要调用startlisten来开启侦听,也可以调用stoplisten来停止侦听,可以多次调用
1 /**客户端开启服务*/
2 var diskClient = new NetDiskClient(SearchPicture, SearchVideo, SearchSource, GetSourceInfo, ScaleImage, new NetDiskClientConfig { ServerIp = "你的服务器ip", Port = 11111, ConnectTimeout = 12000, });//新建客户端服务对象
3 diskClient.NoticeMsg += DiskClient_NoticeMsg;//这里自定义对通知的处理
4 diskClient.Start();//调用start来开启服务
5 diskClient.Client.Client.Send(new byte[1] { 0 });//这里必须间歇性的发送一个0,两个作用,一是快速发现掉线情况,二是防止tcp链接假死。可以定时发送,比如15-30秒发送一次即可,这种发送不影响整体通讯
6 /**这里需要额外注意的是,调用start会额外开启线程去处理服务器发来的命令,但是diskClient应该要定时的去检测链接的有效性,失效了应该积极主动的去重新链接,也就是dispose之后重新new,再start*/

客户端在新建的时候需要提供五个方法,这5个方法含义如下:

SearchPicture:这是随机获取图片的,传入宽高和查看级别来获取对应的一张随机图片,返回图片的code,用于获取图片

SearchVideo:这是随机获取视频的,传入视频文件大小来获取指定大小以下的短视频资源,返回视频的code,用于获取视频

SearchSource:这是搜索指定类型和级别的资源的,返回格式化的资源对象,用于传输给服务器端,

GetSourceInfo:这是获取指定的资源详细内容的,返回格式化的资源对象,

ScaleImage:这是用于缩放图片的,传入图片和需要缩放到的大小,返回图片缩放到指定大小后的文件流

第三步 服务器端搜索资源和获取资源

 1 /**服务器端获取文件*/
 2 using var file = await Task.Run(() => Server.WaitForGetFile("要获取的文件的code", 获取的文件的开始位置, 获取文件的结束位置,可以是-1, 用于取消的token)) ?? throw new BadHttpRequestException("找不到指定的文件", (int)HttpStatusCode.NotFound);
 3 /**服务器端获取缩放后的图片,缩放传入0,0表示不缩放*/
 4 using var file = await Task.Run(() => Server.WaitForGetImage("图片的code", 开始, 结束, 缩放宽度, 缩放高度, 取消token)) ?? throw new BadHttpRequestException("找不到指定的文件", (int)HttpStatusCode.NotFound);
 5 /**随机获取图片的code,宽高用于标识需要获取的图片的宽高比和像素水平,例如水平的2k或4k图,或者垂直的4k或8k图等*/
 6 var rcode = Server.RandomPicture(w, h, level)?.SourceCode;
 7 /**随机获取视频的code,时间用于限制获取的视频的文件大小*/
 8 var code = Server.RandomVideo(30000000, level)?.SourceCode;
 9 /**服务器端搜索指定关键词的资源,搜索出来的是很多资源*/
10 var sources = Server.SearchSource(NetDiskSourceType.game, level, "要搜索的关键词", 0, 8, NetDiskSourceOrderType.none, out _);//其中资源类型有多种,可根据资源类型区分不同的资源来搜索,0和8用于形成页,比如每页是8个,0,8就表示第一页,8,8表示第二页,16,8表示第三页以此类推,后面的排序类型需要在资源搜索的方法中自行实现
11 /**服务器端获取指定资源的详细内容,包括资源中有什么文件,有什么图片等等*/
12 var source = Server.GetSource("资源的code");
13 /**服务器端获取指定的资源文件所在的资源的整体信息,可以同时获取到该资源下所有的其他的文件,常用于视频播放时看它的上一个视频和下一个视频等*/
14 var source = server.GetFileInfo("资源文件的code");

由于这个是服务器端主动发送命令给客户端,客户端处理完命令后再发回给服务器的方式,所以客户端这边不需要太多的处理,客户端这边可以直接写成一个后台运行的服务,这样就可以不需要管了,而服务器端这边是可以主动随时发起请求的。下载文件时,用户直接请求服务器,服务器再请求客户端,然后客户端把文件发送到服务器,服务器再转发给客户这种模式。这就要求需要有一个固定的带宽还可以的服务器作为中介来实现内网穿透。

这个库的优点是,获取文件后可以用api来返回文件,这样你可以直接吧这些资源嵌入到页面中,比如视频,图片等,可以直接在页面上浏览播放,不像一众网盘那样,网盘里的东西只能自己看,分享后也只能在他自己的网盘客户端或者网站上才能浏览,不能把链接嵌入到网站中随时去浏览。文章来源地址https://www.toymoban.com/news/detail-840479.html

到了这里,关于内网穿透,远程网盘,网站外挂资源,可嵌入到页面的网盘资源解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHPStudy快速搭建网站并结合内网穿透远程访问本地站点

    本教程为快速在本地环境下搭建web网站,同时实现可在外网环境下访问!! 使用工具 phpstudy(本地搭建web网站) cpolar内网穿透(将网站发布到公网可访问) 1. 本地搭建web网站 1.1 下载phpstudy后解压并安装 官网下载:https://www.xp.cn/download.html 安装后的效果,如图: 点击,一键

    2024年02月03日
    浏览(47)
  • 使用宝塔在Linux面板搭建网站,并实现公网远程访问「内网穿透」

    宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等,通过Web端轻松管理服务器。 以下教程,我们将演示使用宝塔面板快速简单搭建本地web网站,并做内网穿透,实现不在同个局域网下的用户也可以

    2024年02月04日
    浏览(98)
  • Ubuntu宝塔面板本地部署Emlog个人博客网站并远程访问【内网穿透】

    博客作为使用最广的个人在互联网的发声网站,在很长一段时间里,都被大家视作在互联网上发声的主要通道之一。虽然之后出现的即时聊天工具和朋友圈崛起,抢夺了不少博客的空间,但其仍占有不小的市场份额。也正因博客很重要,才吸引了不少开发者,制作出了各种各

    2024年02月05日
    浏览(43)
  • 使用Inis搭配内网穿透实现Ubuntu上快速搭建博客网站远程访问

    互联网技术总在不断进步,新技术和新软件也会来带更多功能,就以最常见的个人博客系统,也在不断推陈出新,发掘出更多功能和特色。从早期少量自定义和编辑功能,发展到现在的支持各种自定义模块和外观,以及更多更全的支持软件适配(包括php程序、数据库程序等)

    2024年02月05日
    浏览(39)
  • Ubuntu宝塔面板本地部署Emlog博客网站结合内网穿透实现远程访问

    博客作为使用最广的个人在互联网的发声网站,在很长一段时间里,都被大家视作在互联网上发声的主要通道之一。虽然之后出现的即时聊天工具和朋友圈崛起,抢夺了不少博客的空间,但其仍占有不小的市场份额。也正因博客很重要,才吸引了不少开发者,制作出了各种各

    2024年02月03日
    浏览(57)
  • Ubuntu本地快速搭建web小游戏网站,公网用户远程访问【内网穿透】

    网:我们通常说的是互联网;站:可以理解成在互联网上的一个房子。把互联网看做一个城市,城市里面的每一个房子就是一个站点,房子里面放着你的资源,那如果有人想要访问你房子里面的东西怎么办? 在现实生活中,去别人家首先要知道别人的地址,某某区某某街道,

    2024年02月03日
    浏览(61)
  • 如何公网远程访问Axure RP制作的本地web页面【内网穿透】

    AxureRP对于产品经理来说,是一款经常使用的网站原型设计工具。它可以用来创建和设置图表样式,为图表页面和元素添加交互性和注释,并能将正在设计中或设计完成的页面随时发布到HTML,使用Web浏览器查看。但除了在局域网中访问,很多时候也会有出差在外,需要使用公

    2024年01月16日
    浏览(34)
  • 基于php应用的文件管理器eXtplorer部署网站并内网穿透远程访问

    通过互联网传输文件,是互联网最重要的应用之一,无论是网上观看的视频、图片、小说,甚至协同办公和商业文件传递,都是这项应用的延伸。而之前火热一时的云存储概念,就数据存储服务器加互联网传输形成的。不过,云存储接连爆出事故,让公有云存储服务备受质疑

    2024年02月02日
    浏览(42)
  • 如何在CentOS下使用Docker部署Halo博客网站并结合内网穿透远程访问

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 本篇文章介绍如何在CentOS下使用Docker部署开源建站工具Halo,并结合cpolar内网穿透工具实现个人博客的公网访问。 Halo是一款基于Java的开源建站工具,具有简单易用、

    2024年01月18日
    浏览(40)
  • 搭建Ubuntu本地web小游戏网站并通过内网穿透实现公网用户远程访问的步骤指南

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 网:我们通常说的是互联网;站:可以理解成在互联网上的一个房子。把互联网看做一个城市,城市里面的每一个房子就是一个站点,房子里面放着你的资源,那如果

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包