Http 验证上载时要使用什么状态代码?
我正在开发一个直接到S3的上传服务,该服务分为以下两部分。该服务不会被浏览器使用,而是其他软件客户端使用的RESTful APIHttp 验证上载时要使用什么状态代码?,http,rest,redirect,jersey,Http,Rest,Redirect,Jersey,我正在开发一个直接到S3的上传服务,该服务分为以下两部分。该服务不会被浏览器使用,而是其他软件客户端使用的RESTful API 向一个端点发出请求,该端点验证上传,如果一切正常,则返回上传URL 对从#1返回的URL发出PUT请求,以实际上传到S3 服务器应该如何构造第一个端点的响应 我考虑的第一个选项是使用GET并返回状态代码302,其中包含内容位置标题,其中包含要上载到的URL。然而,规范中重定向描述背后的意图似乎集中在表单提交后的重定向上 我正在考虑的另一个选项是对第一个端点使用POST
PUT
请求,以实际上传到S3GET
并返回状态代码302,其中包含内容位置
标题,其中包含要上载到的URL。然而,规范中重定向描述背后的意图似乎集中在表单提交后的重定向上
我正在考虑的另一个选项是对第一个端点使用POST
,并返回带有URL的位置
头,如下所述:
如果已在源服务器上创建资源,则响应
应为201(已创建),并包含一个描述
请求和引用新资源的状态以及位置
标题
请告知其他人在这种情况下使用了什么?我认为这主要取决于您的API本身是否有引用上载文件的资源。唯一知道上传文件的是S3本身,还是API有引用它的东西 如果第一种情况下只有S3知道它,那么如果它只是作为上传参数(包括URI)的生成器,那么可以使用
GET
如果是第二种情况,那么它不应该是一个
GET
,因为您正在更改您这边的某些内容。是的,您应该制作一个POST
,但是Location
头应该用于返回引用上载文件的已创建资源的URI。该资源可能具有上载URI,它可以像状态机一样运行,跟踪文件是否上载。为了避免客户端在能够上载之前需要获取该资源,您可以在链接
标题中返回上载URI,并使用rel
反映该目的。谢谢!我最终使用了一个返回代码201的帖子。