我在 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>
提交此表单时出现以下错误:
当我提交表单时,图像正在上传并能够在存储桶中找到,但也在 firefox firbug 控制台中获得 404,如下所示:
最佳答案
文件有多大?确保设置重试参数,以提供足够的响应时间:
https://developers.google.com/appengine/docs/python/googlecloudstorageclient/retryparams_class
另外,是否需要 60 秒才能获得 404 响应?
关于java - Google Cloud Storage 返回 404,即使文件是使用 BlobstoreService 从 GAE 托管应用程序上传的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042560/