我正在使用PHP创建一个以api为中心的web应用程序。我读了很多关于以api为中心的架构和设计的文章,但是我遇到了一个与文件上传相关的问题。
假设我有一个图像,我想把它上传到API服务器。我应该如何上传该图像,然后如何接收到该图像的链接?
下面是我现在创建它的方法:
- 在客户端
www.domain.com
上使用<input type="file">
选择一个映像 - 通过
POST
和multipart/form-data
上传到www.domain.com
- 使用PUT/POST API调用发送此图像到
api.domain.com
-
api.domain.com
将此图像保存到另一个服务器,如static.domain.com
,并将图像的id存储在数据库 然后,当我需要这个图像时,我可以使用GET API调用
api.domain.com
,我将接收图像的url(类似static.domain.com/image.jpg
)Aditional问题:
- 这种方法是正确的还是我完全错了?
- 如果我的应用程序很小,我是否需要一个额外的服务器来存储上传的文件,或者我可以在API服务器上存储文件?
- 如果我将图像存储在相同的服务器作为API服务器,如果图像url将看起来像
api.domain.com/image.jpg
不会很奇怪吗?
p。S:我们可以跳过很多api相关的东西,因为我只需要知道如何处理文件上传。
您并没有真正说明您将在这里实现什么样的API,所以我假设它只是一个restful API。
- 这种方法是正确的还是我完全错了?
- 如果我的应用程序很小,我是否需要一个额外的服务器来存储上传的文件,或者我可以在API服务器上存储文件?
是的,它将允许您将此存储在同一服务器上,我不明白为什么不。如果应用程序很小,我怀疑您是否会使用大量存储。
- 如果我将图像存储在相同的服务器作为API服务器,如果图像url将看起来像api.domain.com/image.jpg不会很奇怪吗?
api.domain.com/image.jpg在技术上只是连接到API的URL和GET/POST数据。这并不意味着文件将是那个URL。API可以返回如下内容:
{
type: "IMG",
id: "1",
url: "example.com/uploads/image.jpg"
}
我希望这能帮到你,哪怕是一点点!