Angular - 如何在没有后端的情况下测试互联网上传速度?
Angular - how to test Internet upload speed without backend?
我想将文件上传到我的 Angular 应用程序所在的文件夹,同时 运行 在本地主机上。我无法在不使用后端的情况下找到任何解决方案。
例如我只想上传一个图像文件,该文件应该复制到项目的指定文件夹中。这应该只用 Angular 完成,而不使用任何后端脚本或点击任何 API 端点。
资产文件夹是 Angular 应用的静态文件夹之一。它位于服务器上,因此您无法在不访问服务器(HTTP 服务器、API 或其他任何...)的情况下向其中添加文件。
即使 运行 你的应用程序在本地主机上,引擎盖下有一个网络服务器,所以它的行为与部署的应用程序完全相同,你不能通过 Angular应用
我不知道您想对上传的文件做什么,但是:
- 如果你只想在客户端使用它们,并且在一个用户会话中,那么你可以将文件存储在一个 javascript 变量中,然后用它做你想做的事
- 如果您想跨用户或跨用户会话共享它们,则需要将它们存储在服务器上,并且您不能绕过 API 或某些 HTTP 服务器配置
根据您的虚拟主机,您可以通过 FTP 访问您的资产文件夹。
从 javascript(angular 是 javascript)调用 FTP 并不难。互联网上有很多关于它的例子和问题(比如 )
你为什么不这样做:
- 您的 ftp-连接的凭据可以在编译的 javascript-代码中访问。稍微努力一下,大家都能找到。
- 您通过 webhosts 防火墙打开的每个门都是一个额外的漏洞。这就是为什么每个人都会建议您添加一个 API 端点来上传文件,这样您就可以保留可能上传的字符串。
编辑:
当我再次阅读你的问题和所有子答案时,我(认为)发现你正在构建一个没有后端的类似原生的应用程序,只有一个 angular- 单页前端- 结束申请。我能理解为什么(您可以 运行 在支持 javascript 的应用程序的每个平台上这样做),但是您遇到的问题只是整个系列中的第一个。
如果是这种情况,我不会将其命名为 uploading
,因为您会将其存储在本地。
但好消息是您有 localstorage
供您在客户端的 HDD 上存储 临时 数据。这不是很 large space 但它是...
根据您在其中一条评论中的说明:
I'm trying to develop a small speed test application in which user can upload any file from his system to check upload and download speed.
避免拥有自己的后端的唯一方法是使用第三方 API.
有一些专门的速度测试网站,也提供 API 访问。例如:
- https://myspeed.today
- http://www.speedtest.net
- https://speedof.me/api.html
- 更多:https://duckduckgo.com/?q=free+speedtest+api
请注意,其中许多 API 都是付费服务。
此外,我已经找到了这个 图书馆 https://github.com/ddsol/speedtest.net,这可能表明 speedtest.net 有某种免费的 API 层。但这要由您来调查。
这个问题 也可能有帮助,因为它显示在 React Native 中使用 speedtest.net:Using speedtest.net api with React Native
您可以使用第三方库 ng-speed-test。例如,这里有一个 Angular 库,它有一个图像托管在第三方服务器(即 GitHub)上以测试互联网速度。
我想将文件上传到我的 Angular 应用程序所在的文件夹,同时 运行 在本地主机上。我无法在不使用后端的情况下找到任何解决方案。
例如我只想上传一个图像文件,该文件应该复制到项目的指定文件夹中。这应该只用 Angular 完成,而不使用任何后端脚本或点击任何 API 端点。
资产文件夹是 Angular 应用的静态文件夹之一。它位于服务器上,因此您无法在不访问服务器(HTTP 服务器、API 或其他任何...)的情况下向其中添加文件。
即使 运行 你的应用程序在本地主机上,引擎盖下有一个网络服务器,所以它的行为与部署的应用程序完全相同,你不能通过 Angular应用
我不知道您想对上传的文件做什么,但是:
- 如果你只想在客户端使用它们,并且在一个用户会话中,那么你可以将文件存储在一个 javascript 变量中,然后用它做你想做的事
- 如果您想跨用户或跨用户会话共享它们,则需要将它们存储在服务器上,并且您不能绕过 API 或某些 HTTP 服务器配置
根据您的虚拟主机,您可以通过 FTP 访问您的资产文件夹。
从 javascript(angular 是 javascript)调用 FTP 并不难。互联网上有很多关于它的例子和问题(比如
你为什么不这样做:
- 您的 ftp-连接的凭据可以在编译的 javascript-代码中访问。稍微努力一下,大家都能找到。
- 您通过 webhosts 防火墙打开的每个门都是一个额外的漏洞。这就是为什么每个人都会建议您添加一个 API 端点来上传文件,这样您就可以保留可能上传的字符串。
编辑:
当我再次阅读你的问题和所有子答案时,我(认为)发现你正在构建一个没有后端的类似原生的应用程序,只有一个 angular- 单页前端- 结束申请。我能理解为什么(您可以 运行 在支持 javascript 的应用程序的每个平台上这样做),但是您遇到的问题只是整个系列中的第一个。
如果是这种情况,我不会将其命名为 uploading
,因为您会将其存储在本地。
但好消息是您有 localstorage
供您在客户端的 HDD 上存储 临时 数据。这不是很 large space 但它是...
根据您在其中一条评论中的说明:
I'm trying to develop a small speed test application in which user can upload any file from his system to check upload and download speed.
避免拥有自己的后端的唯一方法是使用第三方 API.
有一些专门的速度测试网站,也提供 API 访问。例如:
- https://myspeed.today
- http://www.speedtest.net
- https://speedof.me/api.html
- 更多:https://duckduckgo.com/?q=free+speedtest+api
请注意,其中许多 API 都是付费服务。
此外,我已经找到了这个 图书馆 https://github.com/ddsol/speedtest.net,这可能表明 speedtest.net 有某种免费的 API 层。但这要由您来调查。
这个问题 也可能有帮助,因为它显示在 React Native 中使用 speedtest.net:Using speedtest.net api with React Native
您可以使用第三方库 ng-speed-test。例如,这里有一个 Angular 库,它有一个图像托管在第三方服务器(即 GitHub)上以测试互联网速度。