Java字符串操作
在jsp表单中,用户输入报告文件URL,即。, 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdf 但在提交表单时,java类(struts2操作)必须检查其是否为有效url,方法是将cdn.gs.com作为bucket名称,将/reports/MVR\u Q3\u 2009.pdf作为文件路径,然后在AWS s3 bucket中搜索 现在,我们从url获取文件路径,但是cdn.gs.com在签入S3之前是作为静态变量输入的 我们可以从URL中获取cdn.gs.com作为bucket\u名称(字符串变量)吗 或Java字符串操作,java,string,amazon-s3,Java,String,Amazon S3,在jsp表单中,用户输入报告文件URL,即。, 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdf 但在提交表单时,java类(struts2操作)必须检查其是否为有效url,方法是将cdn.gs.com作为bucket名称,将/reports/MVR\u Q3\u 2009.pdf作为文件路径,然后在AWS s3 bucket中搜索 现在,我们从url获取文件路径,但是cdn.gs.com在签入S3之前是作为静态变量输入的 我们可以从URL中获取cdn.gs.c
cdn.gs.com/live/reports/MVR_Q3_2009.pdf在查看org.apache.commons.StringUtils.java类后,我找到了一个解决方案 下面是解决我的问题的代码 公共布尔值isValidReportURL(字符串url){ url变量可以是 https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf或 cdn.gs.com/live/reports/MVR\u Q3\u 2009.pdf
if (StringUtils.startsWith(url, "https://s3.amazonaws.com")) {
bucketName = StringUtils.substringBetween(url, "com/", "/");
filePath = StringUtils.substringAfter(url, bucketName).replaceFirst("/", "");
} else {
bucketName = StringUtils.split(url, "/")[0];
filePath = (StringUtils.substringAfter(url, bucketName).replaceFirst("/", ""));
}
if (AWSFileUtil.doesFileExist(AWSConnectionUtil.getS3Object(null), bucketName,
filePath)) {
return true;
}
return false;
}