如何使用github repo像CDN服务器一样上传资产文件?

问题描述 投票:1回答:3

我在铁轨上学习红宝石。我正在开发rails 5应用程序。我不想使用amazon s3服务来包含我的资产文件。我想使用github来提供我的资产文件,就像CDN一样。

但我面临一个问题,我有动态文件和图像上传系统。因此,当我上传我的文件和图像时,所有文件和图像都将上传到github存储库(假设我有一个名为busket的git repo;因此,所有图像和文件都将从我的服务器上载到busket repo中,将从rails应用程序服务所有资产)。

那么,我怎样才能使github像CDN一样?请帮我解决这个问题。

ruby-on-rails ruby git github cdn
3个回答
0
投票

1.)将图像编码到base 64 ref:http://ruby-doc.org/stdlib-2.2.0/libdoc/base64/rdoc/Base64.html

2.)对github进行API调用

ref:https://developer.github.com/v3/repos/contents/#create-a-file

这将在github中上传并返回存储图像的url,并将其存储在数据库中。

虽然您声明您不想使用S3,但回形针宝石使其非常精简。


2
投票

我觉得将图像和一般类型的内容文件上传到GitHub进行长期存储通常是个坏主意。 GitHub被设计成Git的存储库提供者,而不是NoSQL或其他类型的数据存储。在GitHub中更新文件需要对特定分支进行提交。因此,每次更改图像文件时,都需要新的提交。这不会扩展,因为Git不能很好地处理二进制文件。

因此,如果您需要为图像和内容文件建立长期数据存储,我建议您查看专为此设计的工具,例如Amazon S3,Google Cloud Storage以及类似的内容。


0
投票

正如@Tim所提到的,它通常是一个坏主意。但是,如果您仍想使用Git作为文件服务器追加

?生= TRUE

在URI的末尾。例如

https://github.com/git/git/blob/master/ewah/bitmap.c?raw=true

会给你文件的内容。

© www.soinside.com 2019 - 2024. All rights reserved.