gpt4 book ai didi

java - 使用curl POST添加Google Blobstore

转载 作者:行者123 更新时间:2023-12-01 12:35:54 26 4
gpt4 key购买 nike

我尝试使用下面的代码使用curl将图像上传到blobstore,但收到以下错误“必须从blob上传回调请求调用”。

但是,如果我使用带有操作的表单,它会上传:

blobstoreService.createUploadUrl("/upload")

===Servlet 代码===

public class Upload extends HttpServlet {
private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

@SuppressWarnings("deprecation")
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {

Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
BlobKey blobKey = blobs.get("myFile");

}

}

有谁知道如何将“blobstoreService.createUploadUrl("/upload")”合并到servlet中,以便我可以执行curl请求:

curl -XPOST http://localhost:8888/upload -F "myFile=@image.jpg"

我使用 Google 开发者页面中的以下示例:

https://developers.google.com/appengine/docs/java/blobstore/

最佳答案

这就是 Blobstore 的工作方式:

  1. 您请求一个网址来进行上传(提供一些资源)。
  2. 客户端使用该 URL 进行发布(这意味着请求将发送至 Blobstore 服务器,而不是您的应用程序)。
  3. Blobstore 服务器接收数据、保存数据并将请求转发到您的应用程序。
  4. 您获取 key 并运行代码,然后返回客户端。

我想说的是,你必须让 Blobstore 完成它的工作,这意味着你不能有固定的上传 URL,你必须首先请求一个要发布的 URL 。这就是系统的设计方式。

因此,您必须进行 2 个 curl 调用,其中一个用于请求 URL,然后使用它来发布,没有其他方法。

当然,它并不那么性感或简单,但其他解决方案会很复杂,甚至昂贵。

关于java - 使用curl POST添加Google Blobstore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com