在jsp表单中,用户输入报告文件URL,即 https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf 要么 cdn.gs.com/live/reports/MVR_Q3_2009.pdf
但是当提交表单时,java类(struts2 action)必须通过将 cdn.gs.com 作为存储桶名称和 / reports /来检查它是否是有效的URL MVR_Q3_2009.pdf 作为文件路径,然后在AWS s3存储桶中进行搜索。
现在我们从url获取file_path,但在检入S3之前,cdn.gs.com作为静态变量输入。
我们可以从URL获取 cdn.gs.com 作为bucket_name(字符串变量) https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf 要么 cdn.gs.com/live/reports/MVR_Q3_2009.pdf
答案 0 :(得分:0)
在查看org.apache.commons.StringUtils.java类之后,我得到了一个解决方案 这是解决我的问题的代码。
public boolean isValidReportURL(String url){
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;
}
url 变量可以是
https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf 或 的 cdn.gs.com/live/reports/MVR_Q3_2009.pdf 强>