You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/09/26 08:16:00 UTC

[camel] branch master updated (8b9fecf -> 292a530)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 8b9fecf  Regen docs
     new 17b762cb CAMEL-14007 Expose BoxFolder.canUpload to let user check if a file can be uploaded https://issues.apache.org/jira/browse/CAMEL-14007
     new 292a530  CAMEL-14007 - Fixed CS

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/component/box/api/BoxFilesManager.java   | 137 ++++++++++++++-------
 components/camel-box/camel-box-component/pom.xml   |   4 +
 2 files changed, 97 insertions(+), 44 deletions(-)


[camel] 02/02: CAMEL-14007 - Fixed CS

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 292a530a228979a6897634972e58693c7fc4fdbf
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Sep 26 10:15:41 2019 +0200

    CAMEL-14007 - Fixed CS
---
 .../main/java/org/apache/camel/component/box/api/BoxFilesManager.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java b/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
index 4b69344..8faa3ac 100644
--- a/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
+++ b/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
@@ -172,7 +172,7 @@ public class BoxFilesManager {
                 }
             }
 
-            if (uploadNewFile){
+            if (uploadNewFile) {
                 BoxFolder parentFolder = new BoxFolder(boxConnection, parentFolderId);
                 FileUploadParams uploadParams = new FileUploadParams();
                 uploadParams.setName(fileName);


[camel] 01/02: CAMEL-14007 Expose BoxFolder.canUpload to let user check if a file can be uploaded https://issues.apache.org/jira/browse/CAMEL-14007

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 17b762cb57041ab8f746c87055ef51185a83968b
Author: Claudio Miranda <cl...@claudius.com.br>
AuthorDate: Wed Sep 25 23:18:37 2019 -0300

    CAMEL-14007 Expose BoxFolder.canUpload to let user check if a file can be uploaded
    https://issues.apache.org/jira/browse/CAMEL-14007
---
 .../camel/component/box/api/BoxFilesManager.java   | 137 ++++++++++++++-------
 components/camel-box/camel-box-component/pom.xml   |   4 +
 2 files changed, 97 insertions(+), 44 deletions(-)

diff --git a/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java b/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
index 2359ed9..4b69344 100644
--- a/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
+++ b/components/camel-box/camel-box-api/src/main/java/org/apache/camel/component/box/api/BoxFilesManager.java
@@ -29,21 +29,21 @@ import com.box.sdk.BoxAPIException;
 import com.box.sdk.BoxFile;
 import com.box.sdk.BoxFileVersion;
 import com.box.sdk.BoxFolder;
+import com.box.sdk.BoxItem;
 import com.box.sdk.BoxSharedLink;
 import com.box.sdk.FileUploadParams;
 import com.box.sdk.Metadata;
 import com.box.sdk.ProgressListener;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Box Files Manager
- * 
+ *
  * <p>
  * Provides operations to manage Box files.
- * 
- * 
+ *
+ *
  *
  */
 public class BoxFilesManager {
@@ -58,7 +58,7 @@ public class BoxFilesManager {
     /**
      * Create files manager to manage the files of Box connection's
      * authenticated user.
-     * 
+     *
      * @param boxConnection
      *            - Box connection to authenticated user account.
      */
@@ -68,7 +68,7 @@ public class BoxFilesManager {
 
     /**
      * Get file information.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @param fields
@@ -98,7 +98,7 @@ public class BoxFilesManager {
 
     /**
      * Update file information.
-     * 
+     *
      * @param fileId
      *            - the id of file to update.
      * @param info
@@ -125,7 +125,7 @@ public class BoxFilesManager {
 
     /**
      * Upload a new file to parent folder.
-     * 
+     *
      * @param parentFolderId
      *            - the id of parent folder.
      * @param content
@@ -141,12 +141,14 @@ public class BoxFilesManager {
      * @param size
      *            - the size of the file's content used for monitoring the
      *            upload's progress.
+     * @param check
+     *            - if the file name is already used, call the uploadNewVersion instead.
      * @param listener
      *            - a listener for monitoring the upload's progress.
      * @return The uploaded file.
      */
     public BoxFile uploadFile(String parentFolderId, InputStream content, String fileName, Date created, Date modified,
-            Long size, ProgressListener listener) {
+            Long size, boolean check, ProgressListener listener) {
         try {
             LOG.debug("Uploading file with name '" + fileName + "' to parent_folder(id=" + parentFolderId + ")");
             if (parentFolderId == null) {
@@ -158,25 +160,39 @@ public class BoxFilesManager {
             if (fileName == null) {
                 throw new IllegalArgumentException("Paramerer 'fileName' can not be null");
             }
-            BoxFolder parentFolder = new BoxFolder(boxConnection, parentFolderId);
-
-            FileUploadParams uploadParams = new FileUploadParams();
-            uploadParams.setName(fileName);
-            uploadParams.setContent(content);
-            if (created != null) {
-                uploadParams.setCreated(created);
-            }
-            if (modified != null) {
-                uploadParams.setModified(modified);
-            }
-            if (size != null) {
-                uploadParams.setSize(size);
-            }
-            if (listener != null) {
-                uploadParams.setProgressListener(listener);
+            BoxFile boxFile = null;
+            boolean uploadNewFile = true;
+            if (check) {
+                BoxSearchManager bsm = new BoxSearchManager(boxConnection);
+                Collection<BoxItem> res = bsm.searchFolder(parentFolderId, fileName);
+                if (!res.isEmpty()) {
+                    BoxItem boxItem = res.iterator().next();
+                    boxFile = uploadNewFileVersion(boxItem.getID(), content, modified, size, listener);
+                    uploadNewFile = false;
+                }
             }
 
-            return parentFolder.uploadFile(uploadParams).getResource();
+            if (uploadNewFile){
+                BoxFolder parentFolder = new BoxFolder(boxConnection, parentFolderId);
+                FileUploadParams uploadParams = new FileUploadParams();
+                uploadParams.setName(fileName);
+                uploadParams.setContent(content);
+                if (created != null) {
+                    uploadParams.setCreated(created);
+                }
+                if (modified != null) {
+                    uploadParams.setModified(modified);
+                }
+                if (size != null) {
+                    uploadParams.setSize(size);
+                }
+                if (listener != null) {
+                    uploadParams.setProgressListener(listener);
+                }
+
+                boxFile = parentFolder.uploadFile(uploadParams).getResource();
+            }
+            return boxFile;
         } catch (BoxAPIException e) {
             throw new RuntimeException(
                     String.format("Box API returned the error code %d\n\n%s", e.getResponseCode(), e.getResponse()), e);
@@ -185,7 +201,7 @@ public class BoxFilesManager {
 
     /**
      * Upload a new version of file.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @param fileContent
@@ -232,7 +248,7 @@ public class BoxFilesManager {
 
     /**
      * Get any previous versions of file.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @return The list of previous file versions.
@@ -256,7 +272,7 @@ public class BoxFilesManager {
 
     /**
      * Download a file.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @param output
@@ -309,7 +325,7 @@ public class BoxFilesManager {
 
     /**
      * Download a previous version of file.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @param version
@@ -357,7 +373,7 @@ public class BoxFilesManager {
 
     /**
      * Promote a previous version of file.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @param version
@@ -390,7 +406,7 @@ public class BoxFilesManager {
 
     /**
      * Copy file to destination folder while optionally giving it a new name.
-     * 
+     *
      * @param fileId
      *            - the id of file to copy.
      * @param destinationFolderId
@@ -426,7 +442,7 @@ public class BoxFilesManager {
 
     /**
      * Move file to destination folder while optionally giving it a new name.
-     * 
+     *
      * @param fileId
      *            - the id of file to move.
      * @param destinationFolderId
@@ -462,7 +478,7 @@ public class BoxFilesManager {
 
     /**
      * Rename file giving it the name <code>newName</code>
-     * 
+     *
      * @param fileId
      *            - the id of file to rename.
      * @param newFileName
@@ -489,7 +505,7 @@ public class BoxFilesManager {
 
     /**
      * Delete the file.
-     * 
+     *
      * @param fileId
      *            - the id of file to delete.
      */
@@ -509,7 +525,7 @@ public class BoxFilesManager {
 
     /**
      * Delete a file version.
-     * 
+     *
      * @param fileId
      *            - the id of file with version to delete.
      * @param version
@@ -540,7 +556,7 @@ public class BoxFilesManager {
 
     /**
      * Create a shared link to file.
-     * 
+     *
      * @param fileId
      *            - the id of the file to create shared link on.
      * @param access
@@ -582,7 +598,7 @@ public class BoxFilesManager {
      * Get an expiring URL for downloading a file directly from Box. This can be
      * user, for example, for sending as a redirect to a browser to cause the
      * browser to download the file directly from Box.
-     * 
+     *
      * @param fileId
      *            - the id of file.
      * @return The temporary download URL
@@ -608,7 +624,7 @@ public class BoxFilesManager {
      * Get an expiring URL for creating an embedded preview session. The URL
      * will expire after 60 seconds and the preview session will expire after 60
      * minutes.
-     * 
+     *
      * @param fileId
      *            - the id of the file to get preview link on.
      * @return The preview link.
@@ -633,7 +649,7 @@ public class BoxFilesManager {
      * Get an expiring URL for creating an embedded preview session. The URL
      * will expire after 60 seconds and the preview session will expire after 60
      * minutes.
-     * 
+     *
      * @param fileId
      *            - the id of the file to get preview link on.
      * @param fileType
@@ -684,7 +700,7 @@ public class BoxFilesManager {
     /**
      * Create metadata for file in either the global properties template or the
      * specified template type.
-     * 
+     *
      * @param fileId
      *            - the id of the file to create metadata for.
      * @param metadata
@@ -720,7 +736,7 @@ public class BoxFilesManager {
 
     /**
      * Gets the file properties metadata.
-     * 
+     *
      * @param fileId
      *            - the id of the file to retrieve metadata for.
      * @param typeName
@@ -752,7 +768,7 @@ public class BoxFilesManager {
 
     /**
      * Update the file properties metadata.
-     * 
+     *
      * @param fileId
      *            - the id of file to delete.
      * @param metadata
@@ -778,7 +794,7 @@ public class BoxFilesManager {
 
     /**
      * Delete the file properties metadata.
-     * 
+     *
      * @param fileId
      *            - the id of file to delete.
      */
@@ -795,4 +811,37 @@ public class BoxFilesManager {
                     String.format("Box API returned the error code %d\n\n%s", e.getResponseCode(), e.getResponse()), e);
         }
     }
+
+    /**
+     * Does a pre-verification before upload, to check if the filename already exists or if there is permission to upload.
+     * It will throw a BoxAPIResponseException if there is any problem in uploading the given file.
+     *
+     * @param parentFolderId
+     *            - the id of parent folder.
+     * @param fileName
+     *            the name to give the uploaded file.
+     * @param size
+     *            - the size of the file's content used for monitoring the upload's progress.
+     *
+     */
+    public void checkUpload(String fileName, String parentFolderId, Long size) {
+        try {
+            LOG.debug("Preflight check file with name '" + fileName + "' to parent_folder(id=" + parentFolderId + ")");
+            if (parentFolderId == null) {
+                throw new IllegalArgumentException("Parameter 'parentFolderId' can not be null");
+            }
+            if (fileName == null) {
+                throw new IllegalArgumentException("Parameter 'fileName' can not be null");
+            }
+            if (size == null) {
+                throw new IllegalArgumentException("Parameter 'size' can not be null");
+            }
+
+            BoxFolder parentFolder = new BoxFolder(boxConnection, parentFolderId);
+            parentFolder.canUpload(fileName, size);
+        } catch (BoxAPIException e) {
+            throw new RuntimeException(
+                String.format("Box API returned the error code %d\n\n%s", e.getResponseCode(), e.getResponse()), e);
+        }
+    }
 }
diff --git a/components/camel-box/camel-box-component/pom.xml b/components/camel-box/camel-box-component/pom.xml
index 88e9c68..ca95df8 100644
--- a/components/camel-box/camel-box-component/pom.xml
+++ b/components/camel-box/camel-box-component/pom.xml
@@ -324,6 +324,10 @@
                                             <methodPattern>getFileThumbnail</methodPattern>
                                             <methodAlias>thumbnail</methodAlias>
                                         </alias>
+                                        <alias>
+                                            <methodPattern>checkUpload</methodPattern>
+                                            <methodAlias>canUpload</methodAlias>
+                                        </alias>
                                     </aliases>
                                     <nullableOptions>
                                         <nullableOption>fields</nullableOption>