Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Snap type:

...

Read

...

In this article

Table of Contents

Overview

  • This Snap browses a given directory path from various sources (such as FTP, FTPS, SFTP, SLDB and S3) and lists the attributes (such as Name, Type, Size, Last Modification Time) of the contents (files or sub-folders).
  • Expected upstream Snaps: Upstream Snap can be given. 
  • Expected downstream Snaps: CSV Formatter followed by File Writer. 
  • Expected input: Directory Path to be browsed and File Filter Pattern to be applied. 
  • Expected output: The attributes (name, size, etc) of the contents of the directory path matching the filter pattern.

...

Multiexcerpt include macro
nameMigrating from Binary to Amazon S3
templateData[]
pageFile Reader
addpanelfalse

Snap Type

The Directory Browser Snap is a Read-type Snap.

Prerequisites

Multiexcerpt include macro
nameEC2Prerequisite
pageFile Reader

...

...

This Snap uses account references created on the Accounts page of the SnapLogic Manager to handle access to this endpoint. 

This Snap supports a Basic auth account, an AWS S3 auth account, SSH Auth account, SMB account, or no account. See Configuring Binary Accounts for information on setting up accounts that work with this Snap.

...

...

Multiexcerpt macro
hiddenfalse
nameFTPS_Prerequisite
fallbackfalse

Connect to FTP server:

To connect to the FTP server that needs to reuse the session for data transfer over TLS protocol, add:

-DFTPS_SSL_TLS_PROTOCOL=TLSV1.2  (or) TLSV1.3property as a JVM option under the Global properties of the Node Properties tab:


Support for Ultra Pipelines 

Works in Ultra Pipelines

Limitations

None.

Known Issues

  • This Snap Pack does not natively support SHA1-based algorithms to connect to SFTP endpoints. With the August 2023 GA release, you can now leverage the properties specified in the Configuration settings for Snaps to add support for ones that are disabled on your Snaplex. 

Snap Views

Type

Format

Number of Views

Examples of Upstream and Downstream Snaps

Description

Input 

Document

  • Min: 0

  • Max: 1

  • Mapper

  • S3 Copy

Directory Path to be browsed and File Filter Pattern to be applied. It contains values for the directory path to be browsed and the GLOB filter to be applied to select the contents.

Output

Document


  • Min: 1

  • Max: 1

  • CSV Formatter

...

  • File Writer

The attributes (name, size, and so on) of the contents of the directory path matching the filter pattern. This Snap provides the various attributes (such as Name, Type, Size, Owner, Last Modification Time) of the contents of the given directory path.  Only those contents are selected that match the given GLOB filter.

Error

...

Settings

...

Label

...

Directory 

The URL for the data source (directory). It should start with a protocol. The protocols that are currently supported include:

  • sldb:

  • s3:

  • ftp:

  • ftps:

  • sftp:

  • hdfs:

  • wasb:

  • wasbs:

  • smb:
  • gs:

  • adl:

  • file:

The Directory field can be a JavaScript expression, which is evaluated with the values from the input view document. 

For SLDB: protocol, relative path is accepted. For example, if this field is left blank, the SLDB project folder of the pipeline is selected. Only two directories can be selected in the SLDB: protocol: the current project directory and the "shared" directory. If the pipeline belongs to the Shared project, only "shared" directory can be selected. No subdirectory is supported for SLDB: as of now. 

Note
  • SnapLogic automatically appends "azuredatalakestore.net" to the store name you specify when using Azure Data Lake; therefore, you do not need to add 'azuredatalakestore.net' to the URI while specifying the directory.
  • The FTPS file protocol works only in explicit mode. The implicit mode is not supported.
  • When using the file:/// protocol, file access is based on the user permissions of the associated Snaplex (by default, this is the Snap user). Use file system access with caution, and ensure that the file system is cleaned after use.

Examples

...

Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab:

  • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

  • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the remaining records.

  • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap Settings

Info
  • Asterisk (*): Indicates a mandatory field.

  • Suggestion icon (Image Added): Indicates a list that is dynamically populated based on the configuration.

  • Expression icon ( Image Added ): Indicates the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.

  • Add icon (Image Added): Indicates that you can add fields in the fieldset.

  • Remove icon (Image Added): Indicates that you can remove fields from the fieldset.

  • Upload icon (Image Added): Indicates that you can upload a file.


Field

Field Type

Description

Label*


Default Value: Directory Browser
ExampleDirectory Browser

String

Specify a unique name for the Snap.

Directory 

Default Value: N/A

Examples

  • Read the file from a location of the storage

...

  • : adl://storename/

...

  • folder/

...

  • filename 

  • If the Snap is executed in the Windows Groundplex and needs to access D: drive): file:///D:/testFolder/ 

  • ftp://ftp.mock.com/vehicles

  • If the bucket name is 'testBucket': gs:///testBucket/testDir/ 

...

  • project-name

  • s3:///<S3_bucket_name>@s3.<region_name>.amazonaws.com/

...

For region names and their details, see AWS Regions and Endpoints.

...

  • <path>

  • File in VPC: s3:///snaplogic-bucket@bucket.vpce-0e340d8d5b0eae90a-k9wbom46-us-west-2a.s3.us-west2.vpce.amazonaws.com

  • sftp://sftp.mock.com/students/grades/

  • share

  • sldb:///shared

  • sldb:///project-name

...

  • If the target folder is /share/folder in server: smb://server/share/folder/

...

  •  

  • If the name of the container is 'Snaplogic': wasb:///Snaplogic/testDir/

...


  • or wasbs:///Snaplogic/testDir

...

Default value: [None]

...

The GLOB pattern can be applied to select the contents (files/sub-folders) of the directory. You cannot recursively navigate through the directory structures.

The File filter property can be a JavaScript expression, which will be evaluated with the values from the input view document.

String/Expression

Specify the URL for the data source (directory) that should begin with a protocol. Following are the protocols that are currently supported:

  • sldb:

  • s3:

  • ftp:

  • ftps:

  • sftp:

  • hdfs:

  • wasb:

  • wasbs:

  • smb:

  • gs:

  • adl:

  • file:

File filter

Default Value: N/A
Example:

  • *.txt

  • ab????xx.*x

  • *.[jJ][sS][oO][nN]

...

Default value: [None]

...

String/Expression

Specify the Glob pattern for filtering the files. The Glob pattern can be applied to select the contents (files/sub-folders) of the directory. You cannot recursively navigate through the directory structures.

Ignore empty result

Default Value: Selected

Checkbox

Select this checkbox to enable the Snap to not write a document to the output view when the result is empty.

...

Deselect this checkbox in the following cases:

  • If the Snap receives an input document, the input document

...

  • is passed through to the output view.

...

  • If the Snap does not receive an input document, an empty document

...

  • is written to the output view.

...

Display update time and owner for S3 subdirectories


Default Value: Selected

Checkbox

Applicable only for S3 directory.

If selected, the Snap

...

produces Update time

...

 and Owner attributes in the output documents for S3 subdirectories. However, it may take a long time or even freeze if there are very large number of files and subdirectories in the file structure under the specified S3 directory. This is because the Snap has to completely examine the S3 objects under the directory recursively in order to

...

get Update time 

...

and Owner

...

 attributes for subdirectories.

If not selected, the Snap does not

...

produce Update time

...

 and Owner attributes in the output documents for S3 subdirectories. Snap output is faster since it examines only S3 files and subdirectories immediately under the specified S3 directory.

Default value: Selected

Number of retries


Default Value: 0
Example:  3

String/Expression

Specify the maximum number of retry attempts in case of a network failure.

Example:  3

Minimum

...

value: 0

...

titleNumber_of_Retries

Whenever the Snap needs to connect to an endpoint and the Connection object is either null or closed, the Snap opens the connection and tries to connect thrice before aborting.

During each retry, the Snap makes a fresh attempt to download and populate the file attributes list into a temporary local file. 

...

Retry interval (seconds)

...


Default Value:1
Example: 3

String/Expression

Specify the minimum number of seconds

...

the Snap must wait before attempting recovery from a network failure.

...

Minimum value: 1

Default value: 1

Advanced properties

Use this field set to define specific settings for directory browsing.

...

 

Properties

...

...

This list contains the following fields:

...

SAS URI

...

Dropdown list



Multiexcerpt macro
nameSASURI_Description_NoAccountSAS

Specify the URI of the Shared Access Storage (SAS) you need to

...

access. You can generate the SAS URI either from the  Snap or from the Azure portal → Shared access signature.

The supported SAS types are:

  • Service SAS on a container
  • Service SAS on blob
  • Ensure that the URI is specified in the format described here.
  • If you provide SAS URI in

...

  • this field, then:
    • the Primary access key given in the account settings is overridden while authentication. If you do not provide

...

    • the SAS URI, the Snap considers

...

    • the Primary access key in the account settings.
    • only this URL is used and the Snap ignores the SAS URI settings that you have configured in the associated account.


Default value
: N/A

Example: https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2015-04-05&st=2015-04-
29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60
-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D

...

nameFast_File_Type_Check_Name

...

Ensure that the URI is specified in the format described here.

...

SAS URI provided in the Snap will completely lead to suppressing the settings provided in the account. SAS URI from the Snaps will be strictly used.


...

Use fast file-type check for wasb/wasbs protocols

String/Expression


Multiexcerpt macro
nameFast_File_Type_Check_Desc

Specifies whether the Snap can use a fast file-type check while browsing through a given file/directory path (for WASB and WASBS file protocols).

Set this field of the Snap to true to save execution times when working with WASB and WASBS file protocols.

Default value: N/A

Snap execution results may not be accurate when using this field. Set this field to true if longer execution times are not a constraint.

...




...

Snap Execution

...


Default ValueValidate & Execute
Example: Execute only


Dropdown list

Select one of the three modes in which the Snap executes. Available options are:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, 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 that are downstream from it.


Insert excerpt
Binary Snap Pack
Binary Snap Pack
nopaneltrue