Difference between revisions of "Home Library FTPClient"

From Gcube Wiki
Jump to: navigation, search
(Start)
(Usage)
Line 40: Line 40:
 
== Start ==
 
== Start ==
  
After downloading the Home Library CLI jar just start it as follows:
+
A FTPClient is created with:
  
 
<source lang="java">
 
<source lang="java">
Line 48: Line 48:
 
== Run the test ==
 
== Run the test ==
 
To check the correct behavior of all features:
 
To check the correct behavior of all features:
<source lang="bash">
+
<source lang="java">
java -jar home-library-cli-<$version>-jar-with-dependencies.jar test
+
client.test();
 
</source>
 
</source>
  
=== Example ===
+
== Current Directory ==
<source lang="bash">
+
To know the current working directory:
user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar test
+
  
param N.0: test
+
<source lang="java">
List Folder /
+
public String currentDirectory()
Response Code : 200
+
</source>
0 elements found
+
  
Create Folder myFolder-7cf437b6-e21f-4f87-a4a3-73f0b2a515c2
+
=== Example ===
Response Code : 200
+
<source lang="java">
myFolder-7cf437b6-e21f-4f87-a4a3-73f0b2a515c2 created in /
+
client.currentDirectory();
 
+
Save images in myFolder-7cf437b6-e21f-4f87-a4a3-73f0b2a515c2
+
 
+
List Folder /
+
Response Code : 200
+
0 elements found
+
 
+
Response Code : 200
+
myFolder-7cf437b6-e21f-4f87-a4a3-73f0b2a515c2 deleted.
+
 
+
HL CLI test successfully completed.
+
 
</source>
 
</source>
  
 
== Create a directory ==
 
== Create a directory ==
  
To create a directory, if it does not already exist.
+
To create a new remote directory in the current working one.
<source lang="bash">
+
<source lang="java">
java -jar home-library-cli-<$version>-jar-with-dependencies.jar mkdir name [path] [description]
+
void createDirectory(String directoryName, String description)
 
</source>
 
</source>
  
Mandatory arguments:
+
Arguments:
* '''name''': the name of the new folder.
+
* '''directoryName''': the name of the new folder.
 
+
* '''description''': the description for the new directory.
Optional arguments:
+
* '''path''': the path where the directory will be created (by default the directory will be created in the '''ROOT_PATH''').
+
* '''description''': the description of the new folder.
+
  
 
=== Example ===
 
=== Example ===
<source lang="bash">
+
<source lang="java">
user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar mkdir myFolder
+
client.currentDirectory();
 
+
param N.0: mkdir
+
param N.1: myFolder
+
Create Folder myFolder
+
Response Code : 200
+
myFolder created.
+
 
</source>
 
</source>
  
 
== Upload a file ==
 
== Upload a file ==
 
To upload a file, if it does not already exist.
 
To upload a file, if it does not already exist.
<source lang="bash">
+
<source lang="java">
java -jar home-library-cli-<$version>-jar-with-dependencies.jar put fileURL [destinationPath] [name]
+
void upload(File file, String name, String description)
 
</source>
 
</source>
  
 
Mandatory arguments:
 
Mandatory arguments:
* '''fileURL''': the URL of the file to save.
+
* '''file''': the file to upload.
 
+
* '''name''': a name for the file
Optional arguments:
+
* '''description''': a description for the file.
* '''destinationPath''': the path of an existing directory where the file will be uploaded (by default the file will be saved in the '''ROOT_PATH''').
+
* '''name''': the description of the new folder (by default the original name will be preserved)
+
  
 
=== Example ===
 
=== Example ===
<source lang="bash">
+
<source lang="java">
user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar put /home/user/Downloads/image.jpg myFolder
+
File myFile = ..
 
+
client.upload(myFile, myFile.getName(), "my new file");
param N.0: put
+
param N.1: /home/user/Downloads/image.jpg
+
param N.2: myFolder
+
/myFolder/image.jpg saved.
+
 
</source>
 
</source>
  

Revision as of 12:14, 3 May 2016

Introduction

Home Library FTPClient is a Java library providing a simple interface to Home Library WebApp.

This library has following features:

  • Current Directory: returns the pathname of the current working directory.
  • Change Directory: to create a directory in the root or in a subfolder.
  • Create Directory: to create a directory in the root or in a subfolder.
  • List Directory: to list the content of a directory.
  • Upload file: to upload a file in a directory.
  • Remove files and folders: to remove a file or a directory (including subdirectories).
  • Test: a simple test to check the correct behavior of the features above.

The following sections will discuss each of these commands in turn, and discuss how to use them with Home Library FTPClient.

Configuration File

Home Library CLI is equipped with a simple configuration file to set the parameters and initial settings.

The fields are:

  • URL_REPOSITORY: the URL of Home Library WebApp.
  • USERNAME: username to connect to Home Library WebApp.
  • PASSWORD: password to connect to Home Library WebApp.
  • LOGIN: the portal login of the user who is using the library.
  • ROOT_PATH : the ROOT of the VRE folder where the files and directory will be created.

The Configuration File cannot be modified by the final user, but it allows to use the CLI in different context.

Usage

Prerequisites

Home Library FTPClient is a jar-with-depencencies, you only need a Java 7 JDK.

Download the latest release from here:

http://maven.research-infrastructures.eu:8081/nexus/content/repositories/gcube-snapshots/org/gcube/common/home-library-cli/.

Start

A FTPClient is created with:

FTPClient client = new FTPClient();

Run the test

To check the correct behavior of all features:

client.test();

Current Directory

To know the current working directory:

public String currentDirectory()

Example

client.currentDirectory();

Create a directory

To create a new remote directory in the current working one.

void createDirectory(String directoryName, String description)

Arguments:

  • directoryName: the name of the new folder.
  • description: the description for the new directory.

Example

client.currentDirectory();

Upload a file

To upload a file, if it does not already exist.

void upload(File file, String name, String description)

Mandatory arguments:

  • file: the file to upload.
  • name: a name for the file
  • description: a description for the file.

Example

File myFile = ..
client.upload(myFile, myFile.getName(), "my new file");

List a directory

To list the content of a directory.

java -jar home-library-cli-<$version>-jar-with-dependencies.jar ls [directory]

Optional arguments:

  • directory: the absolute path of the directory to list (by default the content of the ROOT_PATH will be shown).

Example

user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar ls myFolder
 
param N.0: ls
param N.1: myFolder
Response Code : 200
1 items found.
myFolder/image.jpg

Remove files or directories

To remove files or directories:

java -jar home-library-cli-<$version>-jar-with-dependencies.jar rm fileOrDirectory

Mandatory arguments:

  • fileOrDirectory: the absolute path of the directory or file to remove.

Example

Remove a file:

user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar rm myFolder/image.jpg
 
param N.0: rm
param N.1: myFolder/image.jpg
Response Code : 200
/myFolder/image.jpg deleted.

Remove a directory:

user@my-pc:~$ java -jar home-library-cli-1.0.0-20160324.155028-1-jar-with-dependencies.jar rm myFolder
 
param N.0: rm
param N.1: myFolder
Response Code : 200
myFolder deleted.