Rackspace Cloud Sftp



  1. Cloud Based Sftp Server
  2. Azure Sftp Cloud Service

Introduction

The Rackspace Cloud platform includes everything you need to build websites and applications that scale servers, storage, networking, APIs, and more. The Rackspace Cloud is based on OpenStack, which is a global collaboration of developers and cloud computing technologists producing the ubiquitous open source cloud computing platform for public and private clouds.

Simply FTP copy your files to FTP2Cloud and then wait a few minutes while the automated FTP2Cloud transfer system copies it to your Rackspace Cloud Files account. It doesn’t get much easier. Once a file is successfully uploaded to your Rackspace Cloud Files account, it is deleted from your FTP2Cloud space. Uploading to Rackspace Cloud Files via FTP Sometime ago I wrote a FTP proxy to RackSpace Cloud Files which expose Rackspace Cloud Files as a FTP server acting as a proxy. Thanks to the OpenSource community a user on github took it and add support OpenStack and all the latest features available in Cloud Files.

This guide assumes you're familiar with Java and its technologies. To get started you'll need access to the Rackspace cloud and jclouds.

Get a Username and API Key

  1. If you don't have a Username and API Key already, sign up for developer+ to try the Rackspace Cloud.
    • developer+ gives you a 12-month infrastructure credit that can be used with all of the Rackspace services.
  2. Login to the Cloud Control Panel (US) or the Cloud Control Panel (UK).
  3. In the top right corner click on your username and then click Account Settings to locate your API Key.
Cloud

Get jclouds

  1. Ensure you are using the Java Development Kit (JDK) version 6 or later.
    • javac -version
  2. Ensure you are using Maven version 3 or later.
    • mvn -version
  3. Create a directory to try out jclouds.
    • mkdir jclouds
    • cd jclouds
  4. Make a local copy of this pom.xml file in the jclouds directory.
    • mvn dependency:copy-dependencies '-DoutputDirectory=./lib'
  5. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar

Terminology

There are some differences in terminology between jclouds and Rackspace/OpenStack that should be made clear.

jcloudsRackspace (OpenStack)
ComputeCloud Servers (Nova)
NodeServer
Location/ZoneRegion
HardwareFlavor
NodeMetadataServer details
UserMetadataMetadata
BlobStoreCloud Files (Swift)
BlobFile (Object)

Your First Cloud Files App

Introduction

Cloud Files is an easy to use online storage for files and media which can be delivered globally over Akamai's content delivery network (CDN).

APIs

Cloud Files works with a portable layer in jclouds that is used to access features common to all cloud object storage systems. Cloud Files also works with the OpenStack layer in jclouds that is used to access features common to all OpenStack Swift object storage systems. Finally, Cloud Files works with the Rackspace layer in jclouds that is used to access features specific to the Rackspace object storage system.

  1. The portable API for Cloud Files is org.jclouds.blobstore.BlobStore.
  2. The OpenStack API for Cloud Files is org.jclouds.openstack.swift.CommonSwiftClient.
  3. The Rackspace API for Cloud Files is org.jclouds.cloudfiles.CloudFilesClient.
  4. You can find these APIs in the latest Javadoc.

The Source Code

RackspaceRackspace Cloud Sftp
  1. Create the directory hierarchy org/jclouds/examples/rackspace/cloudfiles/ in your jclouds directory.
  2. Create Java source files called CloudFilesPublish.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/cloudfiles/
        • CloudFilesPublish.java
        • Constants.java
  4. Open CloudFilesPublish.java for editing.
  5. Go to the example code CloudFilesPublish.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Your First Cloud Servers App

Introduction

Cloud Servers is an easy to use service that provides on-demand servers that you can use to to build dynamic websites, deliver mobile apps, or crunch big data.

APIs

Cloud Servers works with a portable layer in jclouds that is used to access features common to all cloud compute systems. Cloud Servers also works with the OpenStack layer in jclouds that is used to access features common to all OpenStack Nova compute systems.

  1. The portable API for Cloud Servers is org.jclouds.compute.ComputeService.
  2. The OpenStack API for Cloud Servers is the org.jclouds.openstack.nova.v2_0.features.ServerApi. It's accessible via the org.jclouds.openstack.nova.v2_0.NovaApi.
  3. You can find these APIs in the latest Javadoc.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/cloudservers/ in your jclouds directory.
  2. Create Java source files called CloudServersPublish.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/cloudservers/
        • CloudServersPublish.java
        • Constants.java
  4. Open CloudServersPublish.java for editing.
  5. Go to the example code CloudServersPublish.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Working with Cloud Block Storage

Introduction

Cloud Block Storage allows you to create volumes on which to persistently store your data from your servers, even when those servers have been deleted. It delivers consistent performance for your I/O-intensive applications.

APIs

Cloud Block Storage works with the OpenStack layer in jclouds that is used to access features common to all OpenStack Cinder block storage systems.

  1. The OpenStack API for Cloud Block Storage is the org.jclouds.openstack.cinder.v1.CinderApi. All other APIs for working with block storage are accessible via the CinderApi.
  2. You can find these APIs in the latest Javadoc.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/cloudblockstorage/ in your jclouds directory.
  2. Create Java source files called CreateVolumeAndAttach.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/cloudblockstorage/
        • CreateVolumeAndAttach.java
        • Constants.java
  4. Open CreateVolumeAndAttach.java for editing.
  5. Go to the example code CreateVolumeAndAttach.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Working with Cloud Load Balancers

Introduction

Cloud Load Balancers distributes workloads across two or more servers, network links, and other resources to maximize throughput, minimize response time, and avoid overload. Rackspace Cloud Load Balancers allow you to quickly load balance multiple Cloud Servers for optimal resource utilization.

APIs

Cloud Load Balancers works with the Rackspace layer in jclouds that is used to access features specific to the Rackspace load balancer system.

  1. The Rackspace API for Cloud Load Balancers is org.jclouds.rackspace.cloudloadbalancers.CloudLoadBalancersApi. All other APIs for working with load balancers are accessible via the CloudLoadBalancersApi.
  2. You can find these APIs in the latest Javadoc.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/cloudloadbalancers/ in your jclouds directory.
  2. Create Java source files called CreateLoadBalancerWithExistingServers.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/cloudloadbalancers/
        • CreateLoadBalancerWithExistingServers.java
        • Constants.java
  4. Open CreateLoadBalancerWithExistingServers.java for editing.
  5. Go to the example code CreateLoadBalancerWithExistingServers.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Working with Cloud Databases

Introduction

Cloud Databases provides easily managed cloud MySQL instances with built-in data replication for speed and reliability.

APIs

You can access Cloud Databases with the jclouds openstack-trove API by specifying the rackspace clouddatabases providers 'rackspace-clouddatabases-us' and 'rackspace-clouddatabases-uk'. The -us one can be used to access the United States regions, and the -uk one is for the United Kingdom regions. The examples use the -us provider, but the providers are interchangeable (but regions will differ).

  1. The Rackspace compatible API for Cloud Databases is org.jclouds.openstack.trove.v1.TroveApi - All other APIs for working with Cloud Databases are accessible via the TroveApi.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/clouddatabases/ in your jclouds directory.
  2. Create Java source files called CreateInstance.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/clouddatabases/
        • CreateInstance.java
        • Constants.java
  4. Open CreateInstance.java for editing.
  5. Go to the example code CreateInstance.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Note: When providing a java classpath in Windows, the path separator is ';' instead of ':'

Advanced work with Cloud Databases

In addition to the create database instance example, by going through the clouddatabases example code, you will learn to create instances, databases, and database users as well as delete and modify them. You will also learn how to set up and access a database from the public internet over JDBC. You can find the examples documentation in the Rackspace examples.

Working with Cloud Auto Scale

Introduction

Cloud Auto Scale takes the work out of capacity planning, allowing Rackspace Cloud Monitoring alerts or scheduled events to create and delete servers. Through the use of webhooks, Auto Scale can be integrated into countless deployment scenarios. Read the dev blog here.

APIs

You can access Cloud Auto Scale with the jclouds rackspace-autoscale API by specifying the Auto Scale provider 'rackspace-autoscale-us'. There is no -uk provider at this time.

  1. The Rackspace compatible API for Auto Scale is org.jclouds.rackspace.autoscale.v1.AutoscaleApi - All other APIs for working with Auto Scale are accessible via the AutoscaleApi.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/autoscale/ in your jclouds directory.
  2. Create Java source files called CreatePolicy.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/autoscale/
        • CreatePolicy.java
        • Constants.java
  4. Open CreatePolicy.java for editing.
  5. Go to the example code CreatePolicy.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

Note: When providing a java classpath in Windows, the path separator is ';' instead of ':'Note: This uses the API key, not the password.

Advanced work with Auto Scale

In addition to the CreatePolicy example, by going through the Auto Scale example code, you will learn to create and execute webhooks, and delete and modify groups, policies, and webhooks. You can find the examples documentation in the Rackspace examples.

Working with Cloud Queues

Introduction

Cloud Queues easily connect distributed applications without installing complex software. Create unlimited queues quickly and send unlimited messages.

APIs

Cloud Queues works with the OpenStack layer in jclouds that is used to access features common to all OpenStack Marconi queuing systems.

  1. The OpenStack API for Cloud Queues is the org.jclouds.openstack.marconi.v1.MarconiApi. All other APIs for working with queues are accessible via the MarconiApi.

The Source Code

  1. Create the directory hierarchy org/jclouds/examples/rackspace/cloudqueues/ in your jclouds directory.
  2. Create Java source files called ProducerConsumer.java and Constants.java in the directory above.
  3. You should now have a directory with the following structure:
    • jclouds/
      • pom.xml
      • lib/
        • *.jar
      • org/jclouds/examples/rackspace/cloudqueues/
        • ProducerConsumer.java
        • Constants.java
  4. Open ProducerConsumer.java for editing.
  5. Go to the example code ProducerConsumer.java, read it over, and copy the code into your file.
  6. Open Constants.java for editing.
  7. Go to the example code Constants.java, read it over, and copy the code into your file.

Compile and Run

jclouds in a Managed Container

Setting up jclouds to work in a managed container is easy. You simply need to ensure that jclouds won't spawn any of its own threads. You can do this by using the ExecutorServiceModule when building your Context.

An example code snippet:

Next Steps

  1. Try the rest of the Rackspace examples and the Logging example.
  2. When you're ready to publish some web pages on the internet, try the CloudFilesPublish.java, CloudServersPublish.java, or CreateLoadBalancerWithNewServers.java examples.
  3. Change the examples to do different things that you want to do.
  4. After running some examples, compare the output with what you see in the Cloud Control Panel.
  5. Join the jclouds community as either a developer or user.
Amazon

Rackspace Cloud Providers

This is a list of providers that work with the Rackspace Cloud that you can use to build your Context.

  • 'cloudfiles-us'
  • 'cloudfiles-uk'
  • 'rackspace-cloudservers-us'
  • 'rackspace-cloudservers-uk'
  • 'rackspace-autoscale-us'
  • 'rackspace-cloudblockstorage-us'
  • 'rackspace-cloudblockstorage-uk'
  • 'rackspace-cloudloadbalancers-us'
  • 'rackspace-cloudloadbalancers-uk'
  • 'rackspace-clouddatabases-us'
  • 'rackspace-clouddatabases-uk'
  • 'rackspace-cloudqueues-us'
  • 'rackspace-cloudqueues-uk'

Support and Feedback

Your feedback is appreciated! If you have specific issues with Rackspace support in jclouds, we'd prefer that you file an issue via JIRA.

For general feedback and support requests, please join the jclouds community.

Overview of FTP and SFTP

Authored by: Rackspace Community

This article discusses the advantages and disadvantages of using File TransferProtocol (FTP) and SSH File Transfer Protocol (SFTP).

Differences between FTP and SFTP

FTP and SFTP are separate protocols that work in a similar way.Both offer file transfer and management on remote machines. The primarydifference is in the level of security that they offer.

Security

FTP traffic is unencrypted. All FTPtransmissions are sent as regular text, including usernames, passwords,commands, and the files themselves. As a result, anyone withaccess to the network can potentially read them.

SFTP is an extension of the Secure Shell Protocol (SSH).It is a more secure option that provides end-to-end encryption throughthe SSH tunnel.

Setup and user management

By default, SFTP is already available on all Linux® images for Rackspacemanaged cloud servers. The only port that is open on a new image is port 22.Opening this port enables administrators to access the server by using eitherSSH or SFTP. Any user with SSH access can also access the server by usingSFTP. The groups and permissions that are associated with your users alsodetermine their ability to manage files.

FTP requires you to install an FTP server (such as very secure File TransferProtocol (FTP) daemon (vsftpd)), open port 21, and create and maintainseparate users and permissions for accessing files and directories.

However, FTP has the following advantages over SFTP:

  • By default, each user is jailed to only have access to those files towhich the administrator has given them access. Because SFTP works with theLinux system user, SFTP requires you to take additional steps to jail users.
  • Some applications can only handle file transfers by using FTP, whichprevents you from using SFTP.

Use vsftpd for FTP

If you plan to use FTP, we recommend that you review the following resourcesthat show you how to install and configure vsftpd on a cloud server.Vsftpd is an open source FTP server that you can use to transfer files.

Recommendation

Rackspace cloud files ftp

We recommend that you use SFTP instead of FTP to ensure that filetransmissions are secure. SFTP encrypts the data that it transfers to theFTP server and prevents unauthorized access during the transmission.

Cloud Based Sftp Server

Additional resources

©2020 Rackspace US, Inc.

Azure Sftp Cloud Service

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License