为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用REST Web服务上载带有元数据的文件?

如何使用REST Web服务上载带有元数据的文件?

摇曳的蔷薇 2019-12-07 14:12:37
我有一个REST Web服务,当前公开此URL:http:// server / data / media用户可以POST在其中使用以下JSON:{    "Name": "Test",    "Latitude": 12.59817,    "Longitude": 52.12873}为了创建一个新的媒体元数据。现在,我需要能够与媒体元数据同时上传文件。最好的方法是什么?我可以引入一个新属性file,对文件进行base64编码,但是我想知道是否有更好的方法。还使用了multipart/form-data类似HTML表单的形式,但是我正在使用REST Web服务,并且我希望尽可能使用JSON。
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

我同意格雷格(Greg)的观点,认为两阶段方法是一个合理的解决方案,但是我会反过来做。我会做:


POST http://server/data/media

body:

{

    "Name": "Test",

    "Latitude": 12.59817,

    "Longitude": 52.12873

}

要创建元数据条目并返回如下响应:


201 Created

Location: http://server/data/media/21323

{

    "Name": "Test",

    "Latitude": 12.59817,

    "Longitude": 52.12873,

    "ContentUrl": "http://server/data/media/21323/content"

}

然后,客户端可以使用此ContentUrl并对文件数据进行PUT。


这种方法的好处是,当您的服务器开始受到海量数据量的限制时,您返回的url只能指向具有更多空间/容量的其他服务器。或者,如果带宽存在问题,则可以实施某种轮询方法。


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信