diff --git a/vas/rest/class/vmlib/phpUtil.inc b/vas/rest/class/vmlib/phpUtil.inc index a89eab29644fbe6ea2f1b9f7e745137f1988fb51..96198da33ce47c9bcb1a028f9d86d69c6fbc2371 100755 --- a/vas/rest/class/vmlib/phpUtil.inc +++ b/vas/rest/class/vmlib/phpUtil.inc @@ -4,6 +4,9 @@ * @brief Fonctions php diverses * * @author Fabien Marty <fabien.marty@veremes.com> + * @author Yoann Perollet <yoann.perollet@veremes.com> + * @author Armand Bahi <armand.bahi@veremes.com> + * @author Anthony Borghi <anthony.borghi@veremes.com> */ /* * Variable globale stockant le nom de dossier lib. @@ -118,7 +121,36 @@ function uploadFile($sNomObjet, $sFileType, $sServerPath, $sMaxSize, $aFileValue //Lance l'upload. if ($bAllowUpload) { - if (!copy($sTmpFile, $sServerPath)) { + if ($properties['fileS3Uploader']){ + require_once ("aws_sdk/aws-autoloader.php"); + + $s3 = new Aws\S3\S3Client(array( + 'version'=>'latest', + 'region'=> $properties['fileS3UploaderRegion'], + 'profile'=> $properties['fileS3UploaderProfil'], + 'debug' => false + )); + + $sBucket = $properties['fileS3UploaderBucket']; + $sPrefix = ""; + + if (strpos($sBucket, "/") > -1){ + $aBucket = explode("/", $sBucket ); + $sBucket = $aBucket[0]; + $sPrefix = implode("/", array_slice($aBucket, 1)); + } + + $sServerPath = str_replace($properties["vas_home"], $sPrefix , $sServerPath); + + $aResult = $s3->putObject(array( + 'Bucket' => $sBucket, + 'Key' => $sServerPath, + 'Body' => file_get_contents($sTmpFile) + )); + + error_log(print_r($aResult, true)); + + } else if (!copy($sTmpFile, $sServerPath)) { writeToErrorLog(ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath); $sErrorMsg = ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . '.'; } @@ -226,7 +258,7 @@ function uploadInWsDataDir ($sModule, $sObject, $mId, $sField, $aValues, $iMaxSi $iMaxSize = $aFileStruct["size"] + 1; } // création du fichier si besoin - if (!is_dir($sDestDir)){ + if (!is_dir($sDestDir) && !$properties['fileS3Uploader']){ if(!mkdir($sDestDir, 0777, true)){ writeToErrorLog("Can't create directory " . $sDestDir); return "Can't create directory " . $sDestDir; @@ -279,7 +311,7 @@ function uploadInPublicDir($sModule, $sField, $aValues, $sRandomUniqId = "auto", } // création du fichier si besoin - if (!is_dir($sDestDir)){ + if (!is_dir($sDestDir) && !$properties['fileS3Uploader']){ if(!mkdir($sDestDir, 0777, true)){ writeToErrorLog("Can't create directory " . $sDestDir); return "Can't create directory " . $sDestDir; @@ -333,7 +365,7 @@ function uploadInUploadDir($sModule, $sField, $aValues, $sRandomUniqId = "auto", } // création du fichier si besoin - if (!is_dir($sDestDir)){ + if (!is_dir($sDestDir) && !$properties['fileS3Uploader']){ if(!mkdir($sDestDir, 0777, true)){ writeToErrorLog("Can't create directory " . $sDestDir); return "Can't create directory " . $sDestDir;