Java字符串操作

时间:2012-02-27 05:23:12

标签: java string amazon-s3

在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

1 个答案:

答案 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