Java Google云存储返回404,即使文件是使用BlobstoreService从GAE托管的应用程序上载的

Java Google云存储返回404,即使文件是使用BlobstoreService从GAE托管的应用程序上载的,java,google-app-engine,google-cloud-storage,Java,Google App Engine,Google Cloud Storage,我在GCS中面临一个问题。在我的应用程序中,我尝试使用appengine sdk 1.9.0中的BlobstoreService.generateUploadUrl()从Google App Engine上托管的应用程序在GCS上上载图像 我正在使用以下代码生成上载url: public Status getUploadURL(@Named("uploadUrl") String uploadUrl, @Named("bucket") String bucket){ Blob

我在GCS中面临一个问题。在我的应用程序中,我尝试使用appengine sdk 1.9.0中的BlobstoreService.generateUploadUrl()从Google App Engine上托管的应用程序在GCS上上载图像

我正在使用以下代码生成上载url:

    public Status getUploadURL(@Named("uploadUrl") String uploadUrl, @Named("bucket") String bucket){
      BlobstoreService blobStoreService = BlobstoreServiceFactory.getBlobstoreService();
      UploadOptions uploadOptions = UploadOptions.Builder.withGoogleStorageBucketName(bucket);
      return new Status(blobStoreService.createUploadUrl(uploadUrl, uploadOptions));
    }
使用上述代码获取上载URL后,我将在上载表单操作中设置此URL:

    <form id="uploadForm" 
     action="https://vibhoretest.appspot.com/_ah/upload/AMmfu6aV-O5cQ_eotQksnMP8NybW8Rei7ZYx2nQxpLN3Aph5-hnxriBHb2BRdfjYqusLER41UWvLp48KxaNiJJFwokpY-ClnmXZgNLuKgKvGgf4Cr-G-YomXmxJ_2055M-PUDmhnfuZOmw6BveexJHQh4oibwA5c5g/ALBNUaYAAAAAU4YMDlvwZRO4XLFDZbTwRrg9MuGI5ygJ/" 
     method="post" enctype="multipart/form-data">
      <input type="hidden" name="key" value="${filename}" />
      <input type="hidden" name="success_action_status" value="201" />
      <input type="hidden" name="x-goog-acl" value="public-read" />
      <input type="file" name="file">
      <input type="submit" value="Upload">
    </form>

提交此表单时,出现以下错误:

当我提交表单时,图像被上传,可以在bucket中找到,但也可以在firefox firbug控制台中找到404,如下所示:


“网络错误:404未找到-”

文件有多大?确保设置了重试参数,以提供足够的响应时间:


另外,是否需要60秒才能获得404响应?

使用签名URL时,GCS会将请求转发给您的应用程序,因此请确保您的应用程序中的/upload URL得到处理,并且不会抛出404。

文件大小为1KB。提交表单后,在3-5秒内显示404错误。可能我在谷歌应用程序引擎或云存储中丢失了一些设置。谢谢Ashish,它成功了。我很惊讶/upload是硬编码的url。我试图在回调url中传递一些自定义参数。我尝试了/upload/#id/upload?#id,但没有成功。最后/upload?id=#id使用参数为我工作。