/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ċ Ġ* Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ċ Ġ* Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . devops . art ifactory . service Ċ Ċ import Ġcom . tencent . devops . art ifactory . pojo . Count Ċ import Ġcom . tencent . devops . art ifactory . pojo . File Detail Ċ import Ġcom . tencent . devops . art ifactory . pojo . FileInfo Ċ import Ġcom . tencent . devops . art ifactory . pojo . Get File Download Urls Response Ċ import Ġcom . tencent . devops . art ifactory . pojo . Search Props Ċ import Ġcom . tencent . devops . art ifactory . pojo . enums . Art ifactory Type Ċ import Ġcom . tencent . devops . art ifactory . pojo . enums . File Channel TypeEnum Ċ import Ġcom . tencent . devops . art ifactory . pojo . enums . FileType Enum Ċ import Ġcom . tencent . devops . common . api . pojo . Page Ċ import Ġcom . tencent . devops . common . api . pojo . Result Ċ import Ġorg . glass fish . j ersey . media . multipart . FormData Content Disposition Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ import Ġjavax . ws . rs . core . Response Ċ Ċ interface ĠArchive File Service Ġ{ ĊĊĠĠĠ Ġfun Ġget BasePath (): ĠString ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ çľŁ æŃ£ çļĦæĸĩä»¶ è·¯å¾Ħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Real Path ( filePath : ĠString ): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupload File ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġfile : ĠFile , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠfilePath : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠfileName : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprops : ĠMap < String , ĠString ?> ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum ĊĠĠĠ Ġ): ĠResult < String ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupload File ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ ĠinputStream : ĠInputStream , ĊĠĠĠĠĠĠĠ Ġdis position : ĠFormData Content Disposition , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠfilePath : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprops : ĠMap < String , ĠString ?> ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum ĊĠĠĠ Ġ): ĠResult < String ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å½Ĵ æ¡£ æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġarchive File ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġbuild Id : ĠString , ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum , ĊĠĠĠĠĠĠĠ Ġcustom FilePath : ĠString ?, ĊĠĠĠĠĠĠĠ ĠinputStream : ĠInputStream , ĊĠĠĠĠĠĠĠ Ġdis position : ĠFormData Content Disposition , ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum ĊĠĠĠ Ġ): ĠResult < String ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ èĩ³ è¾ĵåĩº æµģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload File ( filePath : ĠString , ĠoutputStream : ĠOutputStream ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload File ( filePath : ĠString , Ġresponse : ĠHttpServletResponse ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ åĪ° æľ¬åľ° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload File ( filePath : ĠString ): ĠResponse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ å½Ĵ æ¡£ æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload Archive File ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġbuild Id : ĠString , ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum , ĊĠĠĠĠĠĠĠ Ġcustom FilePath : ĠString , ĊĠĠĠĠĠĠĠ Ġresponse : ĠHttpServletResponse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä»ĵåºĵ æĮĩå®ļ è·¯å¾Ħ ä¸ĭ çļĦæĸĩä»¶ ä¸ĭè½½ è·¯å¾Ħ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetFile Download Urls ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġbuild Id : ĠString , ĊĠĠĠĠĠĠĠ Ġart ifactory Type : ĠArt ifactory Type , ĊĠĠĠĠĠĠĠ Ġcustom FilePath : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum ĊĠĠĠ Ġ): ĠResult < Get File Download Urls Response ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä»ĵåºĵ æĮĩå®ļ è·¯å¾Ħ ä¸ĭ çļĦæĸĩä»¶ ä¸ĭè½½ è·¯å¾Ħ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetFile Download Urls ( ĊĠĠĠĠĠĠĠ ĠfilePath : ĠString , ĊĠĠĠĠĠĠĠ Ġart ifactory Type : ĠArt ifactory Type , ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum ĊĠĠĠ Ġ): ĠResult < Get File Download Urls Response ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® æĸĩä»¶ åħĥ æķ°æį® æŁ¥æī¾ æĸĩä»¶ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsearch FileList ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt ?, ĊĠĠĠĠĠĠĠ ĠpageSize : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġsearch Props : ĠSearch Props ĊĠĠĠ Ġ): ĠResult < Page < FileInfo >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å±ķç¤º æĸĩä»¶ è¯¦æĥħ ĊĠĠĠĠ Ġ* Ġ@ param ĠuserId ĠuserId ĊĠĠĠĠ Ġ* Ġ@ param ĠprojectId ĠprojectId ĊĠĠĠĠ Ġ* Ġ@ param Ġart ifactory Type Ġart ifactory Type ĊĠĠĠĠ Ġ* Ġ@ param Ġpath Ġpath ĊĠĠĠĠ Ġ* Ġ@ return ĠFile Detail ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow ( userId : ĠString , ĠprojectId : ĠString , Ġart ifactory Type : ĠArt ifactory Type , Ġpath : ĠString ): ĠFile Detail ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® çĶ¨æĪ· èĩªå®ļä¹ī è·¯å¾Ħ ä¸İ ĠfileType ĠæĿ¥ çĶŁæĪĲ çľŁ æŃ£ åŃĺåĤ¨ æĸĩä»¶çļĦ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ param ĠfileType Ġæĸĩä»¶ åŃĺåĤ¨ çļĦ ç±»åŀĭ ĊĠĠĠĠ Ġ* Ġ@ param ĠprojectId Ġ é¡¹çĽ® id Ġ èĭ± æĸĩ åĲįç§° ĊĠĠĠĠ Ġ* Ġ@ param Ġcustom FilePath Ġ èĩªå®ļä¹ī è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ param Ġpipeline Id Ġæµ ģ æ°´ çº¿ id ĊĠĠĠĠ Ġ* Ġ@ param Ġbuild Id Ġ æŀĦå»º id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġgenerate Dest Path ( ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcustom FilePath : ĠString ?, ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġbuild Id : ĠString ? ĊĠĠĠ Ġ): ĠResult < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® æĸĩä»¶ è·¯å¾Ħ çĶŁæĪĲ ä¸ĭè½½ è¿ŀæİ¥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtransform File Url ( ĊĠĠĠĠĠĠĠ ĠfileType : ĠFile TypeEnum , ĊĠĠĠĠĠĠĠ Ġwild Flag : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġpath Pattern : ĠString , ĊĠĠĠĠĠĠĠ Ġfile Channel Type : ĠFile Channel TypeEnum , ĊĠĠĠĠĠĠĠ ĠfilePath : ĠString ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¡éªĮ çĶ¨æĪ· æĺ¯åĲ¦ æľī ä¸ĭè½½ æĸĩä»¶çļĦ æĿĥéĻĲ ĊĠĠĠĠ Ġ* Ġ@ param ĠuserId ĠçĶ¨æĪ· Id ĊĠĠĠĠ Ġ* Ġ@ param ĠfilePath Ġ ä¸ĭè½½ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ return ĠResult < Boolean > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġvalidate User Download File Permission ( userId : ĠString , ĠfilePath : ĠString ): ĠResult < Boolean > ĊĊĠĠĠ Ġfun Ġacross Project Copy ( ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġart ifactory Type : ĠArt ifactory Type , ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġtarget ProjectId : ĠString , ĊĠĠĠĠĠĠĠ Ġtarget Path : ĠString ĊĠĠĠ Ġ): ĠResult < Count > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪłéĻ¤ æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete File ( ĊĠĠĠĠĠĠĠ ĠfilePath : ĠString ĊĠĠĠ Ġ): ĠResult < Boolean > Ċ }