• Stars
    star
    22
  • Rank 1,014,464 (Top 21 %)
  • Language
    Julia
  • License
    Mozilla Public Li...
  • Created almost 9 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Julia FTP client using LibCURL.jl

FTPClient.jl

CI codecov

A Julia FTP client using LibCURL supporting FTP and FTP over SSL.

Examples

Depending on the settings of the FTP server you are connecting to you may need to deal with various security settings.

  • FTP with no Transport Layer Security (FTP). Typically uses port 21/TCP.

    julia> ftp = FTP(hostname="example.com", username="user", password="1234")
    URL:       ftp://user:*****@example.com/
    Transfer:  passive mode
    Security:  none
    
    julia> ftp = FTP("ftp://user:[email protected]")
    URL:       ftp://user:*****@example.com/
    Transfer:  passive mode
    Security:  none
  • FTP with implicit security (FTPS). Typically uses port 990/TCP.

    julia> ftp = FTP(hostname="example.com", username="user", password="1234", ssl=true, implicit=true)
    URL:       ftps://user:*****@example.com/
    Transfer:  passive mode
    Security:  implicit
    
    julia> ftp = FTP("ftps://user:[email protected]")
    URL:       ftps://user:*****@example.com/
    Transfer:  passive mode
    Security:  implicit
  • FTP with explicit security (FTPES). Typically uses port 21/TCP.

    julia> ftp = FTP(hostname="example.com", username="user", password="1234", ssl=true, implicit=false)
    URL:       ftpes://user:*****@example.com/
    Transfer:  passive mode
    Security:  explicit
    
    julia> ftp = FTP("ftpes://user:[email protected]")
    URL:       ftpes://user:*****@example.com/
    Transfer:  passive mode
    Security:  explicit

Once you've created your FTP instance you can use many of the filesystem functions that Julia provides. A quick example showing some of the functions available:

julia> cd(ftp, "Documents/School")

julia> pwd(ftp)
"/Documents/School"

julia> readdir(ftp)
1-element Array{String,1}:
 "Assignment1.txt"
 "Assignment2.txt"

julia> io = download(ftp, "Assignment1.txt");  # Download as IO stream

julia> download(ftp, "Assignment2.txt", "./A2/Assignment2.txt");  # Save file to a specified path

julia> upload(ftp, "Assignment3.txt", ".")  # Upload local file "Assignment3.txt" to FTP server home directory

julia> open("Assignment3.txt") do fp
           upload(ftp, fp, "Assignment3-copy.txt")  # Upload IO content as file "Assignment3-copy.txt" on FTP server
       end

julia> mv(ftp, "Assignment3-copy.txt", "Assignment3-dup.txt")

julia> rm(ftp, "Assignment3-dup.txt")

julia> mkdir(ftp, "tmp")

julia> rmdir(ftp, "tmp")

julia> close(ftp)

If you want to upload a file but retry on failures you can do the following:

julia> ftp_retry = retry(delays=fill(5.0, 3)) do
           upload(ftp, "Assignment3.txt", ".")
       end

julia> ftp_retry()

FAQ

Downloaded files are unusable

Try downloading file in both binary and ASCII mode to see if one of the files is usable.

Linux and Travis CI

Travis CI currently [does not reliably support FTP connections on sudo-enabled Linux]https://blog.travis-ci.com/2018-07-23-the-tale-of-ftp-at-travis-ci). This will usually manifest itself as a Connection Timeout error. Disable sudo for a workaround.

More Repositories

1

NamedDims.jl

For working with dimensions of arrays by name
Julia
118
star
2

JLSO.jl

Julia Serialized Object (JLSO) file format for storing checkpoint data.
Julia
88
star
3

Memento.jl

A flexible logging library for Julia
Julia
86
star
4

ExprTools.jl

Light-weight expression manipulation tools
Julia
77
star
5

Impute.jl

Imputation methods for missing data in julia
Julia
71
star
6

Nabla.jl

A operator overloading, tape-based, reverse-mode AD
Julia
66
star
7

Keras.jl

A julia wrapper for https://keras.io
Julia
53
star
8

Dispatcher.jl

Build, distribute, and execute task graphs
Julia
46
star
9

FeatureTransforms.jl

Transformations for performing feature engineering in machine learning applications
Julia
36
star
10

Intervals.jl

Non-iterable ranges
Julia
34
star
11

SyntheticGrids.jl

Julia package for building synthetic power grids
Julia
27
star
12

BayesianOptimization.jl

A julia package for bayesian optimization of black box functions.
Julia
23
star
13

JuliaFormat.jl

A code formatting tool for Julia inspired by gofmt and rustfmt
Julia
15
star
14

DaskDistributedDispatcher.jl

Submit and execute distributed computations. A dask.distributed scheduler and Dispatcher.jl integration.
Julia
14
star
15

Arbiter

A concurrent task-runner that automatically resolves dependency issues
Python
13
star
16

Checkpoints.jl

A package for dynamically checkpointing program state
Julia
12
star
17

KeepActionsAlive

Prevent scheduled GitHub Actions from becoming disabled after 60 days
Python
11
star
18

OPFSampler.jl

Takes a power grid case and generates OPF samples by changing the input parameters.
Julia
10
star
19

PDMatsExtras.jl

Extra Positive (Semi-)Definite Matricies
Julia
9
star
20

LayerDicts.jl

Layered dictionary lookups for Julia
Julia
9
star
21

MetaOptOPF.jl

Code for paper: Learning an Optimally Reduced Formulation of OPF through Meta-Optimization
Julia
9
star
22

DateParser.jl

Handle automatic parsing of DateTime strings
Julia
8
star
23

Parallelism.jl

A library for threaded and distributed parallelism.
Julia
8
star
24

std-semaphore

Semaphore and SemaphoreGuard from std::sync in rust<=1.8.0
Rust
7
star
25

TrackedDistributions.jl

Julia
7
star
26

FullNetworkSystems.jl

Definitions of the Julia types for simulating an ISO's market clearing.
Julia
7
star
27

Metrics.jl

Performance metrics for evaluating learning algorithms and prediction models. Includes subsampling confidence intervals
Julia
6
star
28

Cliquing.jl

Algorithms for finding a non-overlapping set of cliques in a graph
Julia
6
star
29

FullNetworkModels.jl

Create a Build a JuMP.jl Model from a FullNetworkSystems.jl System, solved unit commitment, and OPF etc
Julia
6
star
30

PowerSystemsUnits.jl

PowerSystems Units for Unitful
Julia
5
star
31

VirtualArrays.jl

A way to concatenate arrays without copying values.
Julia
5
star
32

DeferredFutures.jl

Julia Futures which are initialized when written to
Julia
5
star
33

ReadWriteLocks.jl

A simple read-write lock for Julia
Julia
5
star
34

AxisSets.jl

Consistent operations over a collection of KeyedArrays
Julia
5
star
35

TagBotGitLab

Julia TagBot for GitLab
Python
5
star
36

JuliaTraining2022

Resources for Julia training session
5
star
37

StackTraces.jl

Intuitive, useful stack traces for Julia.
Julia
4
star
38

KeyedDistributions.jl

Distributions and Sampleables with keys for the variates
Julia
4
star
39

DataClient.jl

For accessing datalakes on S3
Julia
4
star
40

CloudWatchLogs.jl

AWS CloudWatch Logs integration for Julia using Memento.jl
Julia
4
star
41

Holidays.jl

Julia library for handling holidays
Julia
4
star
42

sphinxcontrib-runcmd

A Sphinx extention that aims to allow you to place the output of arbitrary commands in to your rst files, while also giving you greater flexibility in how the output is formatted
Python
4
star
43

KeyedFrames.jl

A DataFrame that also keeps track of its unique key
Julia
3
star
44

DateSelectors.jl

Utilities for partitioning Dates into validation and holdout sets.
Julia
3
star
45

RingArrays.jl

A sliding window over a huge array.
Julia
3
star
46

JuliaLAB

Embedded Julia in MATLAB
C
3
star
47

Models.jl

An interface package that defines the methods and types for working with models.
Julia
3
star
48

SublimeLinter-contrib-julialintserver

SublimeLinter plugin using Lint.jl lintserver
Python
2
star
49

ObservationDims.jl

Traits for specifying the orientation of features and observations in data
Julia
2
star
50

Syslogs.jl

Julia syslog interface
Julia
2
star
51

DistributedLogging.jl

A place for logging helpers for distributed jobs to live
Julia
2
star
52

matpy

Call Python from MATLAB
C++
2
star
53

GPForecasting.jl

A Julia package for Gaussian Processes
Julia
2
star
54

blog

Invenia's blog
SCSS
2
star
55

IndexedDims.jl

Deprecated in favour of https://github.com/mcabbott/AxisKeys.jl
Julia
2
star
56

lambdalayers

Some useful AWS Lambda layers for Invenia (and code to deploy them)
Python
1
star
57

MaximumGeneratorProfitTCRDD.jl

Julia
1
star
58

Hyperparameters.jl

Julia
1
star
59

Arbiter.jl

A task-runner that automatically resolves dependency issues
Julia
1
star
60

LibPQBuilder

A script masquerading as a BinaryBuilder repo for libpq
Julia
1
star
61

DiffLinearAlgebra.jl

Implementation-agnostic linear algebra optimisations for Reverse-Mode AD
Julia
1
star
62

TrajectoryMatrices.jl

Julia
1
star
63

Wrangling.jl

Wrangle your data into shape. Deals with Columns and Files and Lags and Cattle.
Julia
1
star
64

testre

Temporary rethinkdb servers for testing
Python
1
star
65

RemoteSemaphores.jl

Julia
1
star
66

S3DBConverter

Internal tool for converting our data stores to modern performant formats
Python
1
star
67

FTPServer.jl

Julia wrapper for pyftpdlib
Julia
1
star