2012-02-27 8 views
1

https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdf または cdn.gs.com/live/reports/MVR_Q3_2009.pdfJavaの文字列操作のユーザーがレポートファイルのURLを入力します。すなわち形成JSPでは

しかし、フォームが送信され、Javaのクラス(struts2アクション)はcdn.gs.comをバケット名に、/reports/MVR_Q3_2009.pdfをAWS s3バケットで検索して、有効なURLがあるかどうかをチェックする必要があります。

今のところ、urlからfile_pathが取得されていますが、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(文字列変数)として、私は解決策を持ってcdn.gs.comこれについては、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.pdfまたは cdn.gs.com/live/reports/MVR_Q3_2009.pdf

関連する問題