在哪里为 MERN 应用程序保存 ~500 个图像文件



我正在构建一个体育网络应用程序,对于该应用程序,我需要每个NBA篮球运动员的缩略图。我编写了一个脚本来获取图像路径(像这样的链接 - http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/3414.png&w=350&h=254(,所以我可以访问所有图像,但我不确定 React 关于保存这些类型图像的最佳实践是什么。我认为我的选择是:

  1. 将每个播放器的图像文件保存在应用程序目录中(保存其他图像的位置,我认为是我的应用程序的 assets 文件夹(,然后将它们导入应用程序。
  2. 不要保存图像文件,而是在我的数据库中创建一个包含玩家 ID 和图像路径的表,并让我的应用使用这些路径来获取已托管的图像。
  3. 本质上是 A 和 B。首先保存图像文件,然后自己重新托管图像文件,并链接到这些新托管的图像。

这3个选择有意义吗? 我觉得(3(是最好的选择,但也需要最多的工作。(2( 似乎是最简单但最不可靠的,因为我不能相信已经托管的图像 url 将始终有效,并且 (1( 似乎不是最好的方法,因为它需要我的应用程序中数百个导入语句才能获取所有图像。

不是编码问题,但我认为这具有广泛的适用性,我希望这篇文章能坚持下去。对此有任何帮助或想法,不胜感激!

编辑:作为参考,以下是我的表格的样子:

> player.image.df
[,1]                [,2]                                                                                       
[1,] "alex-abrines"      "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/2995702.png&w=350&h=254"
[2,] "quincy-acy"        "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/6576.png&w=350&h=254"   
[3,] "steven-adams"      "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/2991235.png&w=350&h=254"
[4,] "bam-adebayo"       "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/4066261.png&w=350&h=254"
[5,] "arron-afflalo"     "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/3187.png&w=350&h=254"   
[6,] "alexis-ajinca"     "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/3410.png&w=350&h=254"   
[7,] "cole-aldrich"      "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/4267.png&w=350&h=254"   
[8,] "lamarcus-aldridge" "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/2983.png&w=350&h=254"   
[9,] "jarrett-allen"     "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/4066328.png&w=350&h=254"
[10,] "kadeem-allen"      "http://a.espncdn.com/combiner/i?img=/i/headshots/nba/players/full/3134880.png&w=350&h=254"

这些不是我的链接,我无法知道ESPN是否会更改这些链接,这就是为什么我认为(3(是这里最好的方法。但我不确定如何快速轻松地托管自己的图像。

我会推荐第三个选项,它绝对是确保这些图像可用并根据需要使用它的最可靠方法。

您不必为每个图像进行导入,一旦您在数据库中拥有所有图像路径,您就可以使用 require(( 函数动态加载它。

您只需制作一个脚本即可下载 CDN 上的所有图像并将其新路径保存到数据库中。

-编辑-

我正在考虑您的服务器和带宽足够强大,可以管理自托管图像生成的额外工作。

最新更新