diff --git a/vas/rest/class/vmlib/phpUtil.inc b/vas/rest/class/vmlib/phpUtil.inc
index f2e26c8df32a92975a1f4fbea86b42afc095758f..79de3bfc992d991535ee5930ad5956799aab1eb4 100755
--- a/vas/rest/class/vmlib/phpUtil.inc
+++ b/vas/rest/class/vmlib/phpUtil.inc
@@ -282,8 +282,8 @@ function stripslashes_deep($aString) {
      // création du fichier si besoin
      if (!is_dir($sDestDir)){
          if(!mkdir($sDestDir, 0777, true)){
-             writeToErrorLog("Can't create directory " . $sDestDir);
-             return "Can't create directory " . $sDestDir;
+             writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir);
+             return 'ERROR_CREATING_DIRECTORY ' . $sDestDir;
          }
      }
      // Upload du fichier
@@ -335,8 +335,8 @@ function stripslashes_deep($aString) {
    // création du fichier si besoin
    if (!is_dir($sDestDir)){
        if(!mkdir($sDestDir, 0777, true)){
-           writeToErrorLog("Can't create directory " . $sDestDir);
-           return "Can't create directory " . $sDestDir;
+           writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir);
+           return 'ERROR_CREATING_DIRECTORY ' . $sDestDir;
        }
    }
    // Upload du fichier
@@ -388,8 +388,8 @@ function stripslashes_deep($aString) {
    // création du fichier si besoin
    if (!is_dir($sDestDir)){
        if(!mkdir($sDestDir, 0777, true)){
-           writeToErrorLog("Can't create directory " . $sDestDir);
-           return "Can't create directory " . $sDestDir;
+           writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir);
+           return 'ERROR_CREATING_DIRECTORY ' . $sDestDir;
        }
    }
    // Upload du fichier
@@ -1386,7 +1386,7 @@ function getDatePattern($sUserDateFormat, $sDateType) {
     return $Pattern;
 }
 
- /**
+  /**
   *This method copy a file in ws_data.
   *@file vmlib/phpUtil.inc
   *@param $sModule Name of the module.
@@ -1397,13 +1397,13 @@ function getDatePattern($sUserDateFormat, $sDateType) {
   *@param $sNewFileName Name of the new file.
   *@return $sErrorMsg The error message.
   */
-function copyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName, $sNewFileName) {
+function copyFileInWsDataDir ($sModule, $sObject, $mId, $sField = '', $sFileName, $sNewFileName) {
     global $properties;
     $sErrorMsg = '';
     $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject . "/" . $mId;
     if(!empty($sField))
         $sDestDir .= "/" . $sField;
-    if ($properties['fileS3Uploader']) {
+    if ($properties['fileS3Uploader'] === true) {
         require_once ("aws_sdk/aws-autoloader.php");
         $s3 = new Aws\S3\S3Client(array(
             'version'=>'latest',
@@ -1423,11 +1423,16 @@ function copyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName,
         if (strpos($sServerPath, '/') === 0)
             $sServerPath = substr($sServerPath, 1);
         // Copie du fichier.
-        $aResult = $s3->copyObject(array(
-            'Bucket' => $sBucket,
-            'Key' => $sServerPath . '/' . $sNewFileName,
-            'CopySource' => $sBucket . '/' . $sServerPath . '/' . urlencode($sFileName)
-        ));
+        try {
+            $aResult = $s3->copyObject(array(
+                'Bucket' => $sBucket,
+                'Key' => $sServerPath . '/' . $sNewFileName,
+                'CopySource' => $sBucket . '/' . $sServerPath . '/' . urlencode($sFileName)
+            ));
+        }
+        catch(Aws\S3\Exception\S3Exception $e) {
+            writeToErrorLog($e->getMessage());
+        }
     }
     else {
         $sFilePath = $sDestDir . '/' . $sFileName;
@@ -1489,11 +1494,12 @@ function createEmptyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFi
     else {
         $sFilePath = $sDestDir . '/' . $sFileName;
         // Création du répertoire de destination si inexistant.
-        if (!file_exists($sDestDir))
+        if (!file_exists($sDestDir)) {
             if (!mkdir($sDestDir, 0777, true)) {
                 writeToErrorLog(ERROR_CREATING_DIRECTORY . $sDestDir);
                 return ERROR_CREATING_DIRECTORY . $sDestDir;
-            }                    
+            }
+        }
         fclose(fopen($sFilePath, "w+"));
     }
     return $sErrorMsg;
@@ -1543,11 +1549,14 @@ function deleteDirectoryInWsDataDir($sModule, $sObject, $mId, $sField = '', $sDi
                 'Prefix' => $sServerPath
             ));
             // Suppression de chaque fichier.
-            foreach($oAwsResult->get('Contents') as $aKey) {
-                $aResult = $s3->deleteObject(array(
-                    'Bucket' => $sBucket,
-                    'Key' => $aKey['Key']
-                ));
+            $aKeys = $oAwsResult->get('Contents');
+            if (is_array($aKeys)) {
+                foreach($aKeys as $aKey) {
+                    $aResult = $s3->deleteObject(array(
+                        'Bucket' => $sBucket,
+                        'Key' => $aKey['Key']
+                    ));
+                }
             }
         }
         catch(Aws\S3\Exception\S3Exception $e) {
@@ -1560,7 +1569,7 @@ function deleteDirectoryInWsDataDir($sModule, $sObject, $mId, $sField = '', $sDi
         if (is_dir($sDirectoryPath)) {
             if (!cleardir($sDirectoryPath)) {
                 writeToErrorLog(ERROR_DELETING_DIRECTORY . $sDestDir);
-                return ERROR_DELETING_DIRECTORY . $sDestDir;
+                $sErrorMsg = ERROR_DELETING_DIRECTORY . $sDestDir;
             }
         }
     }
@@ -1642,9 +1651,11 @@ function getFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFil
   *@param $sFileContent Data to write to the file.
   *@return $sErrorMsg The error message.
   */
-function putFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName, $sFileContent) {
+function putFileContentInWsDataDir($sModule, $sObject, $mId = '', $sField = '', $sFileName, $sFileContent) {
     global $properties;
-    $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject . "/" . $mId;
+    $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject;
+    if(!empty($mId))
+        $sDestDir .= "/" . $mId;
     if(!empty($sField))
         $sDestDir .= "/" . $sField;
     if ($properties['fileS3Uploader'] === true) {
@@ -1687,6 +1698,13 @@ function putFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFil
                 return false;
             }
         }
+        // Création du répertoire de destination si inexistant.
+        if (!file_exists($sDestDir)) {
+            if (!mkdir($sDestDir, 0777, true)) {
+                writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDirPath);
+                return false;
+            }
+        }
         // Ecrit les données dans le fichier.
         if (file_put_contents($sFilePath, $sFileContent) === false) {
             writeToErrorLog(ERROR_WRITING_FILE_CONTENT . $sFilePath);