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 访问。例如:

请注意,其中许多 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)上以测试互联网速度。