Google app engine 如何将在线生成的音频上传到google app engine blob商店

Google app engine 如何将在线生成的音频上传到google app engine blob商店,google-app-engine,audio,Google App Engine,Audio,我正在google app engine上用java创建一个应用程序,用户可以在其中录制语音并上传到服务器。 我在谷歌应用程序引擎中实现了它,并录制了音频并生成了具有blob:format的url。现在我想把它上传到谷歌应用程序引擎的blob商店 如何存储生成的音频文件。请帮忙 您可能想看看谷歌云存储,它允许您直接提供上传内容(可能使用您的自定义域),而无需应用程序引擎(如Amazon S3) 您可以使用BlobstoreService中的createUploadUrl()方法,这将允许用户直接

我正在google app engine上用java创建一个应用程序,用户可以在其中录制语音并上传到服务器。 我在谷歌应用程序引擎中实现了它,并录制了音频并生成了具有blob:format的url。现在我想把它上传到谷歌应用程序引擎的blob商店


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

您可能想看看谷歌云存储,它允许您直接提供上传内容(可能使用您的自定义域),而无需应用程序引擎(如Amazon S3)

您可以使用
BlobstoreService
中的
createUploadUrl()
方法,这将允许用户直接将其文件上载到blobstore(之后执行用户指定的“load handler”回调),或者用户可以上载到您的应用程序引擎应用程序,然后使用将blob写入GCS

使用云存储客户端库,您可以指定文件“路径”(它不是真正的路径)和访问控制规则。如果您需要的话,这些文件可以作为GCS的静态内容。如果您希望控制对上载文件的访问,您的应用程序引擎应用程序可以使用相同的客户端库从GCS读取并将其返回给用户


希望这有帮助。

这个问题很模糊,但我会尽力回答。涉及到许多概念和技术。 这可以是jsp文件(表单是使用jQuery UI创建的):


上传

这可以是后端控制器(用Java和Spring MVC实现):

@SuppressWarnings(“弃用”)
@RequestMapping(value=“/uploadAudio”,method=RequestMethod.POST)
公共字符串uploadAudioServlet(HttpServletRequest-req,HttpServletResponse-resp)抛出IOException、JSONException{
Map blobs=blobstoreService.getUploadedBlobs(req);
BlobKey-BlobKey=blobs.get(“fileblob”);
}
现在,blob已上载并生成blobKey。您可以使用此键创建一个URL,用于访问音频文件。我在想象一个类似于可点击音频文件列表的东西,当你点击它们时,这些文件就会在浏览器中播放。一旦您提供更多详细信息,我们将乐于提供帮助

<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>
@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");
    }