gpt4 book ai didi

java - 如何使用 Java 从我使用 Glassfish 和 REST 协议(protocol)设置的 Amazon AWS 服务器检索文件?

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:58 25 4
gpt4 key购买 nike

我设置了一个 Amazon AWS Linux 服务器实例 (EC2),其中包含一些我想要使用 REST 协议(protocol) Web 服务检索的音频文件。由于某种原因,我的 getAudio 函数的 URL 不正确。

@Path("/get/{fileName}") // http://IP.ADDRESS/audio/get/{fileName}
@GET
@Produces("application/wav")
public Response getAudio(@PathParam("fileName") String fileName) {
ResponseBuilder response = null;
StringBuilder builder = new StringBuilder();
builder.append(AUDIO_PATH).append(fileName).append(".wav");

File file = new File(builder.toString());
response = Response.ok(file);
response.header("Content-Disposition", "attachment; filename=" + fileName + ".wav")
.header("Access-Control-Allow-Origin", "*");

return response.build();
}

AUDIO_PATH 是一个最终字符串变量,其中包含 Linux 实例中创建的音频文件的关联路径。

对于 Glassfish,这是一个应用程序服务器,可让我部署由此功能以及其他一些工作功能组成的 Web 服务。

当我使用 Glassish 运行一个我知道输入正确的 URL 时,出现 404 错误,提示找不到该 URL。我在 Amazon 管理控制台中创建了允许 HTTP 协议(protocol)的安全异常(exception)。

我用来尝试访问此 getAudio 函数的 URL 是:http://IP.ADDRESS.OF.AWS.INSTANCE:80/audio/get/hello

此端口号是 80,因为当您为 HTTP 协议(protocol)添加安全异常(exception)时,这就是它要使用的端口号。 Linux 实例中的/AUDIO_PATH/路径中还有一个已创建的名为“hello.wav”的音频文件,这就是我尝试在 URL 中下载的文件。

还有一个旁注,但我正在 IntelliJ IDE 中使用 Glassfish 运行我的程序,其中还包含一个 createAudio 函数,其路径为:@Path("/create/{fileName}/{text}")

此函数有效,根据输入的文本创建音频,但我无法从实例下载音频。

最佳答案

您收到任何响应的事实表明您的安全组(防火墙)允许您的请求到达您的 EC2 服务器。如果存在安全组问题,您的连接将挂起直至超时。

您的代码看起来像您正在使用 Jersey。您可能需要在 GET 请求中包含 Accept: application/wav header ,以便 Jersey 知道将其与指定的端点相匹配。

关于java - 如何使用 Java 从我使用 Glassfish 和 REST 协议(protocol)设置的 Amazon AWS 服务器检索文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com