我在谷歌应用引擎上用java创建一个应用程序,用户可以在其中录制他的声音并上传到服务器。我在谷歌应用引擎中实现它并录制了音频并生成了具有 blob: http://xxx.xx 格式的 url。现在我想将它上传到谷歌应用引擎的 blob 商店。
如何存储此生成的音频文件。请帮忙!!
我在谷歌应用引擎上用java创建一个应用程序,用户可以在其中录制他的声音并上传到服务器。我在谷歌应用引擎中实现它并录制了音频并生成了具有 blob: http://xxx.xx 格式的 url。现在我想将它上传到谷歌应用引擎的 blob 商店。
如何存储此生成的音频文件。请帮忙!!
这个问题很模糊,但我会尽力回答。涉及许多概念和技术。这可以是 jsp 文件(表单是使用 jQuery UI 创建的):
<div id="audio-upload-form">
<form action="<%= blobstoreService.createUploadUrl("/uploadAudio") %>" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="fileblob" id="fileblob" class="text ui-widget-content ui-corner-all" required />
</fieldset>
<button class="upload-video" type="submit">Upload</button>
</form>
这可以是后端控制器(用 Java 和 Spring MVC 实现):
@SuppressWarnings("deprecation")
@RequestMapping(value = "/uploadAudio", method = RequestMethod.POST)
public String uploadAudioServlet(HttpServletRequest req, HttpServletResponse resp) throws IOException, JSONException {
Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
BlobKey blobKey = blobs.get("fileblob");
}
现在 blob 已上传并生成 blobKey。您可以使用此密钥创建可用于访问音频文件的 URL。我在想像一个可点击的音频文件列表,当你点击它们时,它们会在浏览器本身中播放。一旦您提供更多详细信息,我们将很乐意提供帮助。
您可能想看看 Google Cloud Storage,它允许您直接提供上传的内容(可能使用您的自定义域),而无需 App Engine(如 Amazon S3)。
您可以使用 中的createUploadUrl()
方法BlobstoreService
,这将允许用户直接将他们的文件上传到 blobstore(之后执行用户指定的“加载处理程序”回调),或者用户可以上传到您的 App Engine 应用,然后使用谷歌云存储客户端库将 blob 写入 GCS。
使用 Cloud Storage 客户端库,您可以指定文件“路径”(它不是真正的路径)和访问控制规则。然后,这些文件可以作为 GCS 的静态内容提供,如果这是您想要的。如果您想控制对上传文件的访问,您的 App Engine 应用可以使用相同的客户端库从 GCS 中读取并将其返回给用户。
希望这可以帮助。