如何将在线生成的音频上传到谷歌应用引擎blob商店

时间:2013-10-15 05:52:14

标签: google-app-engine audio

我正在谷歌应用引擎上用java创建一个应用程序,用户可以在其中录制他的语音并上传到服务器。 我在谷歌应用引擎中实现它并录制了音频并生成了具有blob:http://xxx.xx格式的网址。现在我想将它上传到谷歌应用引擎的blob商店。

如何存储此生成的音频文件。请帮忙!!

2 个答案:

答案 0 :(得分:0)

您可能需要查看Google云端存储,它可以让您直接(可能使用您的自定义域)提供上传的内容,而无需App Engine(如Amazon S3)。

您可以在createUploadUrl()中使用BlobstoreService方法,这将允许用户直接将其文件上传到blobstore(之后执行用户指定的“加载处理程序”回调),或者用户可以上传到您的App Engine应用程序,然后使用Google Cloud Storage Client Library将Blob写入GCS。

使用云存储客户端库,您可以指定文件“路径”(它实际上不是路径)和访问控制规则。然后,这些文件可以作为GCS的静态内容提供,如果这是你想要的。如果您想控制对上传文件的访问,您的App Engine应用程序可以使用相同的客户端库从GCS读取并将其提供给用户。

希望这有帮助。

答案 1 :(得分:0)

问题很模糊,但我会尽力回答。涉及许多概念和技术。 这可以是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。我想象的是一个可点击的音频文件列表,当你点击它们时,它们会在浏览器中开始播放。一旦您提供更多详细信息,将很乐意提供帮助。