2012-02-27 91 views
1

在JSP形成用戶輸入的報告文件的URL即 https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdfJava的字符串操作

但是,當提交表單時,一個java class(s​​truts2 action)必須通過將cdn.gs.com作爲存儲桶名稱並將/reports/MVR_Q3_2009.pdf作爲文件路徑,然後在AWS s3存儲桶中進行搜索來檢查其是否有效。

現在我們從url獲取file_path,但cdn.gs.com是在檢入S3之前作爲靜態變量輸入的。

我們可以得到cdn.gs.com從URL https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdf

回答

0

BUCKET_NAME(字符串變量),我得到了一個解決方案爲此,查看org.apache.commons.StringUtils.java類 以下是解決我的問題的代碼。

公共布爾isValidReportURL(字符串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.pdfcdn.gs.com/live/reports/MVR_Q3_2009.pdf