Строковые операции Java - PullRequest
1 голос
/ 27 февраля 2012

В форме 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) должен проверить, является ли его действительный URL-адрес, взяв cdn.gs.com в качестве имени сегмента и / reports / MVR_Q3_2009.pdf в качестве пути к файлу, а затем выполняет поискв корзине AWS s3.

На данный момент мы получаем file_path из URL, но cdn.gs.com вводится как статическая переменная перед проверкой в ​​S3.

Можем ли мы получить cdn.gs.com как bucket_name (строковая переменная) из URL https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf или cdn.gs.com/live/reports/MVR_Q3_2009.pdf

1 Ответ

0 голосов
/ 27 февраля 2012

Я получил решение для этого, после просмотра класса 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 / живой / отчеты / MVR_Q3_2009.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...