OneDrive - Upload File

In this article

Overview

Use this Snap to upload a file from the SLDB or a Snaplex folder to your OneDrive or Shared Library (document library) location.

Prerequisites

  • A valid application in Azure Portal with appropriate permissions.
  • A valid Microsoft OneDrive license.
  • Write access on the folder location mentioned in the Source Relative Path/ID.

Support for Ultra Pipelines

Works in Ultra Pipelines.

Limitations

The OneDrive Upload File snap fails with 409 error, when you select replace as the Conflict behavior. The error occurs because the ID provided on a PUT or POST operation for a resource is already in use by another resource. So, when you make concurrent calls, the Snap will likely encounter a 409 error intermittently.
WorkaroundAdd a Retry value and validate the Pipeline.

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 keeping a check on the number of requests emanating from your client instance.

Snap Views


TypeFormatNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input 

Binary

  • Min: 1
  • Max: 1
  • Mapper
  • Copy
  • Get Drive Item
  • File Reader
A binary document containing the file to upload to a OneDrive or Shared Library location.
Output

Document

  • Min: 0
  • Max: 1
  • Mapper
  • Share Item
  • Move Item
  • Copy Item

A document containing the result of the file upload and the location where the file is uploaded.

The error view of the Snap has been changed from the Binary view to the Document view. This change will not impact any existing pipelines.

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.
Upload FileUpload File
Drive TypeDrop-down list

Required. Select a drive type from the drop-down list consisting of the following options to upload the file and specify the corresponding details needed:

  • OneDrive. To upload a file to a OneDrive location. Requires UserDrive, and Source Relative Path/ID.
  • documentLibraryTo upload a file to a shared library (document library) locationRequires Shared LibraryDrive, and Source Relative Path/ID.
  • DriveTo upload a file to a drive to a drive (in user's OneDrive or shared library) using the Drive ID. Requires Drive (ID) and Source Relative Path/ID.
  • All. To select a drive from the list of all drives and shared libraries (including SharePoint sites) that you can access, and upload a file to that locationRequires User, Drive, and Source Relative Path/ID.
OneDrivedocumentLibrary
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 upload a file 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
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 upload a file to 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
DriveString/Expression/Suggestion

Required for all Drive Type options.

Specify the name of the drive to upload a file to it. The suggestions for this field are based on the Snap account and the User or Shared Library selected.

For the Drive Type Drive, specify/pass the ID of the drive to upload a file to it, 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 upload the file to, 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 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.
  • The Snap handles encoding of the value provided in this field; therefore, when you configure this field with a pre-encoded value, the Snap passes a re-encoded value to the API, which results in an incorrect output. We recommend you configure this field with an unencoded value.
root://myprojects/
Upload File NameString/Expression

Enter a name to upload the file as.

N/Amyfile.xlsx
Conflict behaviorDrop-down list

Required. Select one of the following options from this drop-down list to define how the Snap must deal with a conflict while uploading the file — a file with the same name and type exists in the selected location.

  • replace. To replace the existing file having the same name with the new file created.
  • fail. To abort the upload file operation and return an appropriate error.
  • rename. To rename the new file with a slightly different name based on OneDrive's conflict management mechanism and upload.
replacerename
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/ExpressionEnter, 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

Uploading a file for Check Out and Check In

This Pipeline demonstrates how you can use the Snaps in the Microsoft OneDrive Snap Pack to upload, check out, check in and download files in an authorized Share Library location. It assumes that you have configured your Azure application and the Snap accounts already. The Pipeline uses the following parameters. 

First, we upload a file to a Shared Library location using File Reader Snap, locate it and check it out for editing. Then we check in the updated file and download it.

File Reader Snap

Output

After reading the file from the location provided, we upload the file into a Shared Library (location for Shared files within OneDrive). We configure the Snap to replace an existing file with this file if their file names are the same.

Upload File Snap

Output

Now that the file is available in the shared location, let us check out the file for editing. To check out the file, we need to capture the file name. We use a Mapper Snap to extract the file name from the Upload file output view.

We pass the extracted file name along with its location (in a shared library) using an expression in the Source Relative Path/ID field, for checking out the file.

Check Out File SnapOutput

The Check Out File Snap provides the name of the checked-out file in the $Item field and the result of the check-out operation. We use a Mapper Snap again to retrieve this value in $Item and pass it to the Check In File Snap — to check in the same file after it is updated.

In the Check In File Snap, we provide the file details in the Source Relative Path/ID field and an editing comment in the Check In Comment field. This Snap outputs a similar information - $Item and Result of the check in operation.

Check In File SnapOutput

Now, we directly pass the value in $Item field of the output to a Download File Snap to download the file. The Snap downloads the file and returns the location where the file is downloaded. In addition to this, the Snap also relays the (original) output from the previous Snap (Check In File Snap).

Download File Snap

Output