Copy Item

In this article

Overview

Use this Snap to copy items from a OneDrive or Shared Library (document library) location to another location in OneDrive or Shared Library.

Prerequisites

  • A valid application in Azure Portal with appropriate permissions.
  • A valid Microsoft OneDrive license.
  • Write access to both source and target locations (folders).

Support for Ultra Pipelines

Works in Ultra Pipelines

Limitations

Copying files larger than 10 MB using this Snap fails when you specify a new name for saving the file. This is an issue that Microsoft has acknowledged. The work around is to:

  • Copy your large files using the Copy Item Snap to a temporary location in your OneDrive, with the same name.
  • Rename and move it to your target location using the Move Item Snap.
  • When copying large folders/files (10,000 or more) in OneDrive, if there is an unexpected asynchronous call return from the API, the Snap doesn’t fail instead displays a warning message in the output: An invalid status was retrieved from the asynchronous call: 'null'. Learn more: https://learn.microsoft.com/en-us/onedrive/developer/rest-api/resources/asyncjobstatus?view=odsp-graph-online.

    This results in the specific folder or file associated with the error not being copied, and the Snap continues to copy the remaining records. Therefore, we recommend you to verify the copied documents and check the warning message where you can view the uncopied items, if any. Learn more on how to do so using the following example pipelines:

Known Issues

  • Snaps in the Microsoft OneDrive Snap Pack have an in-built retry mechanism for failing connections and requests; but, a high volume of requests from a client might reach the throttling threshold. In such scenarios, the Microsoft Graph limits further requests from that client for a period of time and returns an HTTP status code 429 (Too many requests), thereby causing the requests to fail. Hence, we recommend you to keep a check on the number of requests emanating from your client instance.
  • The Snap copies the item to the root folder when you provide invalid Target Relative Path/ID (without root:/). However, the Snap works as expected (throws an exception) when you provide an invalid Target Relative Path/ID that begins with root:/. We recommend that you ensure that the Target Relative Path/ID always resolves to a valid folder.

Snap Input and Output

Input/OutputType of ViewNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input 

Document

  • Min: 0
  • Max: 1
  • Mapper
  • Copy
  • Create Folder
A document containing the source and target details for copying the driveItem.
Output

Document

  • Min: 1
  • Max: 1
  • Mapper
  • Download File
  • Check out File

A document containing the result of the copy operation.

Snap Settings

Parameter NameData TypeDescriptionDefault ValueExample 
LabelString
Specify a name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.
Copy ItemCopy Item
Source driveTypeDrop-down list

Required. Select a drive type from the following list of permitted drive types in this drop-down list (to locate files/folders for the copy operation) and specify the corresponding details needed:

  • OneDrive. To copy a driveItem (including any children) from the source OneDrive location to the target location. Requires Source UserSource Drive, and Source Relative Path/ID.
  • documentLibraryTo copy a driveItem (including any children) from a shared library (document library) location to the target location. Requires Source Shared LibrarySource Drive, and Source Relative Path/ID.
  • DriveTo copy a driveItem (including any children) to the target location, from a drive (in user's OneDrive or shared library) using the source Drive ID. Requires Source Drive (ID) and Source Relative Path/ID.
  • All. To select and copy a driveItem (including any children) in a drive from the list of all drives and shared libraries (including SharePoint sites) that you can access, to the target location. Requires Source UserSource Drive, and Source Relative Path/ID.
OneDrivedocumentLibrary
Source UserString/Expression/Suggestion

Required for Drive Type options - OneDrive and All. Not needed for Drive and documentLibrary.

Select a user from the suggested list of users to copy files/folders from that user's OneDrive location.

The list of users displayed varies based on your access to their OneDrive locations. This option is meant for administrator users who are authorized to manage other users' drives, as well.

N/ASnap Team:snap@snaplogic.net
Source Shared LibraryString/Expression/Suggestion

Required for Drive Type option - documentLibrary. Not needed for OneDrive, Drive, and All.

Select a shared library from the suggested list of libraries to copy files/folders from that library location.

The list of shared libraries displayed varies based on your access to them. This option is meant for users who have write access on both the source and target shared libraries.

N/ANewSharedLibrary
Source DriveString/Expression/Suggestion

Required for all Drive Type options.

Specify the name of the source drive to copy driveItems from. The suggestions for this field are based on the Snap account and the Source User or Source Shared Library selected.

For the drive type Drive, specify/pass the ID of the source drive to copy the driveItem from, typically from the upstream Snap.

For the drive type All, select a drive from the OneDrive or a Shared Library drive.

Specify the Source Relative Path/ID of the driveItem, next.

N/AOneDrive
Source Relative Path/IDString/Expression

Required for all Drive Type options.

Enter the relative path for the driveItem to be copied, beginning with root:/. Alternatively, pass the item ID in this field.

Relative Path and ID

  • Any URL in this field that starts with root:/ is treated as relative path. All other entries (without root:/ at the beginning) are treated as driveItem IDs.
  • When the driveItem ID passed is invalid (not a 34-character alphanumeric code such as 014ZXBQNNHW2DJ3CDKQZBJHRYWFWVRRQA2), the Snap returns the error - The resource is not found.
root://Pictures/Tour1/Image01.png
Target Drive Same As SourceCheck box

Select this check box to indicate that the source and target drive locations for copying the driveItem are same. 

If this check box selected, the Snap ignores the values in Target DriveType, Target User or Target Shared Library, and Target Drive fields and pastes the item in the path provided in Target Relative Path/ID.

SelectedNot selected
Target DriveTypeDrop-down list

Required. Select a drive type from the following list of permitted drive types in this drop-down list (to locate files/folders for pasting the copied driveItems in) and specify the corresponding details needed:

  • OneDrive. To paste a driveItem (including any children) to the target OneDrive location. Requires Target UserTarget Drive, and Target Relative Path/ID.
  • documentLibraryTo paste a driveItem (including any children) into a shared library (document library) location. Requires Target Shared LibraryTarget Drive, and Target Relative Path/ID.
  • DriveTo paste a driveItem (including any children) to a drive (in user's OneDrive or shared library) using the Target Drive ID. Requires Target Drive (ID) and Target Relative Path/ID.
  • All. To select a target drive from the list of all drives and shared libraries (including SharePoint sites) that you can access, for pasting the driveItem (including any children). Requires Target UserTarget Drive, and Target Relative Path/ID.
OneDrivedocumentLibrary
Target UserString/Expression/Suggestion

Required for DriveType options - OneDrive and All. Not needed for Drive and documentLibrary.

Select a user from the suggested list of users to paste files/folders to that user's OneDrive location.

The list of users displayed varies based on your access to their OneDrive locations. This option is meant for administrator users who are authorized to manage other users' drives, as well.

N/ASnap Team:snap@snaplogic.net
Target Shared LibraryString/Expression/Suggestion

Required for Drive Type option - documentLibrary. Not needed for OneDrive, Drive, and All.

Select a Shared Library from the suggested list of libraries to paste the copied files/folders into that library location.

The list of shared libraries displayed varies based on your access to them. This option is meant for users who have write access on both the source and target shared libraries.

N/ANewSharedLibrary
Target DriveString/Expression/Suggestion

Required for all Drive Type options.

Specify the name of the target drive to paste the copied driveItems into. The suggestions for this field are based on the Snap account and the Target User or Target Shared Library selected.

For the DriveType Drive, specify/pass the ID of the target drive to paste the copied driveItem to, typically from the upstream Snap.

For the drive type All, select a drive from the OneDrive or a Shared Library drive.

Specify the Target Relative Path/ID of the driveItem, next.

N/AOneDrive
Target Relative Path/IDString/Expression

Required for all DriveType options.

Enter the relative path beginning with root:/to paste the copied driveItem. Alternatively, pass the item ID in this field.

Relative Path and ID

  • Any URL in this field that starts with root:/ is treated as a relative path. All other entries (without root:/ at the beginning) are treated as driveItem IDs.
  • When the driveItem ID passed is invalid (not a 34-character alphanumeric code such as 014ZXBQNNHW2DJ3CDKQZBJHRYWFWVRRQA2), the Snap returns the error - The resource is not found.
root://Pictures/Tour2/
Target Item NameString/Expression

Enter a unique name to save the file in the target location as, if you want to rename the file while pasting it. This works as expected only for files less than 10 MB. See Limitations for more information.

To paste the file with the same name, leave this field blank.

N/AImage01.png
Number Of RetriesString/ExpressionSpecify an integer value to set the maximum number of reconnection attempts that the Snap must perform, in case of connection failure or timeout.03
Retry Interval (Seconds)

String/Expression

Enter, in seconds, the duration for which the Snap must wait between two reconnection attempts, until the number of retries is reached.12
Snap ExecutionDrop-down list

Select one of the three following modes in which the Snap executes:

  • Validate & Execute. Performs limited execution of the Snap and generates a data preview during Pipeline validation, then performs full execution of the Snap (unlimited records) during Pipeline runtime.
  • Execute only. Performs full execution of the Snap during Pipeline execution without generating preview data.
  • Disabled. Disables the Snap and all Snaps downstream from it.

Execute onlyValidate & Execute

Examples

Working with Drive Items (Folders and Files) in OneDrive

Microsoft's OneDrive and SharePoint dialects treat files and folders as drive items for all the similar operations (CRUD) they allow. Microsoft OneDrive Snap Pack provides multiple Snaps to perform these operations. This Pipeline demonstrates some of these operations - Creating folders, copying items, moving items, and deleting items. It assumes that you have configured your Azure application and the Snap accounts already. The Pipeline uses the following parameters. 

We use the Create Folder Snap to create a new folder in the OneDrive (or Shared Library) location. Next, we use a Copy Item Snap to create a copy of an existing item in another folder/shared location. The Delete Item Snap removes an item from the source location. The Move Item Snap moves the copied item back to its source location. We also use a Mapper Snap to feed required information to the Move Item Snap.

Create Folder Snap

Output

Now, we copy the newly created folder (mentioned in Source Relative Path/ID field) to another target location (Target Relative Path/ID) using the Copy Item Snap.

Copy Item Snap

Output

Let us delete the original folder from the first source location using the Delete Item Snap. Notice the value/expression used in Source Relative Path/ID field in this Snap.

Delete Item SnapOutput

The output for the Delete Item Snap displays the summary of the delete operation. We use a Mapper Snap to return the name of the item and pass it to the Move Item Snap.

As the last step, let us connect a Move Item Snap to move the copied item (in the old target location) back to its original location (target location for the Move Item Snap). To do so, we capture this name of the item and pass it to the Move Item Snap as the source item detail.

Move Item Snap

Output

Upon completion of the task of moving items, the Snap provides the details of the driveItem that was moved to its original location.

Download this Pipeline

Copy 10,000 documents using Copy Item Snap

The following example pipeline demonstrates how to copy a large number of folders/files (10,000 in this example). This example assumes you have configured the necessary accounts and prerequisites in SnapLogic.

Download this pipeline.

  1. Configure the Sequence Snap with 10,000 documents to generate a sequence of numbers from 1 to 10,000 to create unique folder names.
  2. Configure the Create Folder Snap to create a new folder for each sequence number in the OneDrive location. On validation, the Snap displays the paths of the newly created folders with additional details.

Create Folder Snap Configuration

Create Folder Snap Output

3. Configure the Copy Item Snap to copy the specified documents to a target location. On validation, the Snap displays the paths of the copied items in the target location with additional details.

Copy Item Snap Configuration

Copy Item Snap Output

After copying the documents, you can connect any write-type Snap (File Writer or S3 File Writer) to Copy Item Snap to write the input data into a database. You can check if any warnings have occurred while copying the folders/files from the written data.

Check warning messages encountered while copying

The following example pipeline demonstrates how to read a JSON file containing details of folders copied and filter out any warning messages encountered during the copying process. This can help you verify the copied documents and check the warning message where you can view the uncopied items, if any.

Download this pipeline.

  1. Configure the File Reader Snap to read the onedrivePerfVerify.json JSON file, which contains details of the copied folders and any warnings encountered. On validation, the Snap displays the content of the binary output of the JSON file, showing details of copied folders and warnings.

File Reader Snap Configuration

File Reader Snap Output Preview

2. Configure the JSON Parser Snap to parse the binary data read by the File Reader Snap. On validation, the Snap displays the contents of the parsed JSON data as a document downstream for further use in the pipeline.

3. Configure the Filter Snap with the filter expression $warningMessage != null to filter out the JSON data to show only those that contain warning messages. This allows you to focus on issues encountered during the copying process. On validation, the Snap displays the filtered warning messages, detailing any issues encountered so you can take further action to troubleshoot.

Filter Snap Configuration

Filter Snap Output

Downloads

Important Steps to Successfully Reuse Pipelines

  1. Download and import the Pipeline into SnapLogic.
  2. Configure Snap accounts as applicable.
  3. Provide Pipeline parameters as applicable.

Snap Pack History

 Click here to expand...

Release

Snap Pack Version 

Date

Type

Updates

August 2024438patches28439 Latest

Updated the Kotlin library for Microsoft OneDrive Snap Pack with the okhttp library Platform version to avoid Kotlin library dependency conflict.

August 2024

main27765

 

Stable

Updated and certified against the current SnapLogic Platform release.

May 2024

main26341

 

Stable

Updated and certified against the current SnapLogic Platform release.

February 2024436patches25789 Latest

Fixed a performance issue in the Copy Item Snap, which previously resulted in a nameAlreadyExists error when the Snap retried because of a connection reset.

February 2024

main25112

 

Stable

Updated and certified against the current SnapLogic Platform release.

November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023434patches22736 Latest
  • Fixed an issue with the Mircosoft OneDrive Snap Pack where the Snaps displayed Duplicate key OneDrive error. The Snaps now hide the drive details stored in the PreservationHoldLibrary folder when displaying suggestions. You can use the Drive ID to access the PreservationHoldLibrary folder.

  • Fixed an issue with the Mircosoft OneDrive Snaps that displayed a JsonNull error when the shared library list was empty. Now, it displays the message No Suggestions available.

August 2023main22460 StableUpdated and certified against the current SnapLogic Platform release.

May 2023

main21015 

Stable

Upgraded with the latest SnapLogic Platform release.

February 2023432patches20510 Latest

Fixed the following issues with OneDrive Snaps:

  • The Snaps erroneously displayed the permission error when the actual cause was an empty display name in the API.

  • The Snaps failed with a 403 error when selecting a user (in the User field) from the Suggestions list without the User.Read.All permission. Now you can enter the value manually in the User field and proceed with the specific operation you want to perform in OneDrive, even if the Suggestions list is not available.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
August 2022main17386 StableUpgraded with the latest SnapLogic Platform release.
4.29main15993 StableUpgraded with the latest SnapLogic Platform release.
4.28main14627 StableUpgraded with the latest SnapLogic Platform release.
4.27main12833 StableUpgraded with the latest SnapLogic Platform release.
4.26main11181 

Stable

Upgraded with the latest SnapLogic Platform release.
4.25 Patch425patches10571
Latest

Updated the error output view of the OneDrive - Upload File Snap from a Binary view to a Document view.

4.25main9554 StableEnhanced the Update Share Permissions Snap with the Share Type and Expires fields that enable you to update the share permissions on your OneDrive items shared using the Invite or Link option. If the Share type is link, you can specify the expiry date and time for the URL that is used to share permissions.
4.24main8556 
StableNo updates made.

4.23

main73

 

Stable

Initial release of the Snap Pack with the following Snaps and Accounts:


See Also