Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
s3compatibleapi [2018_01_30 21:43] stevens3compatibleapi [2023_08_15 20:56] steven
Line 1: Line 1:
-====== Amazon S3 compatible API ======+Amazon S3 compatible API
  
-We provide support for another API that is becoming ubiquitous. In this case it is the Amazon S3 API. This is already used in solutions such as Eucalyptus Walrus, and we have now also added it as entry point for **any files** accessed through a SMEStorage Account. This means you can use the S3 compatible API to access your files on Google Docsor Google Storage, or RackSpace Cloud Files, or Microsoft OneDrive, or any of the many other Clouds that we support.+The Enterprise File Fabric provides support for an Amazon S3 compatible API. This means the S3 compatible object storage API can be used to access files that have been mapped to the File Fabric, such as files available on Google Drive, RackSpace Cloud Files, or Microsoft OneDrive, or any of the many other clouds that the solution supports.
  
-For those interested, moving from a file based structure to a flat file object structure was achieved using the [[http://en.wikipedia.org/wiki/Depth-first_search|depth first algorithm]] within the implementation mapping to our [[http://smestorage.com/?p=static&page=for_developers|API]].+The S3 API is available on the SaaS hosted service and also on the enterprise on-premises edition of the product.
  
-Below is a practical implementation of using the S3 API.+## Client Configuration
  
-===== 1 Setting up an S3 Tool to work with SMEStorage =====+To use the S3 API the:
  
 + 1. Cloud S3 Endpoint
 + 2. Access Key ID
 + 3. Secret Access Key
  
 +are required.
  
-{{:/s3compatibleapi:steps:sme_1_setting_up_an_s3_too.png}}+### 1Cloud S3 Endpoint
  
-Lets look at a practical implementation of the S3 API using a tool that supports S3 compatible endpoints, CloudBerry explorer. We'll use this to access our Google Docs / Drive, although we could have chosen DropBox, or any other number of clouds to access.+For the SaaS hosted service it is required to use one of the following S3 API endpoints:
  
 + * http://s3.storagemadeeasy.com (US Server)
 + * https://s3.storagemadeeasy.com (US Server)
 + * http://s3eu.storagemadeeasy.com (EU Server)
 + * https://s3eu.storagemadeeasy.com (EU Server)
  
-===== 2 Creating a New Account =====+Naturally http endpoints are not secure and should not be used for production data.
  
-{{:/s3compatibleapi:steps:sme_2_creating_a_new_accou.png}}+For the enterprise on-premises version of the product the S3 access nomenclature is set through the ConfigServer.
  
-Choose to add an account and fill in the endpoint as either:+### 2. Access Key ID
  
-€˜**//s3.storagemadeeasy.com//**’ (US Server) or '**//s3eu.storagemadeeasy.com//**' (EU Server)+The Access Key ID is the SME or File Fabric username.
  
-and the QueryID should be set as the SME usernameYou can obtain the API key from logging into SME going to **//My Account//** from the sidebar and copying the API key from where it says **//API secret Key//**+### 3Secret Access Key 
  
 +You can obtain the API secret key by logging into the File Fabric going to **My Account** from the sidebar and copying the key from where it says **API secret key**.
  
-===== 3 Confirm Connection =====+## Use With a Variety of S3 Clients
  
-{{:/s3compatibleapi:steps:sme_3_confirm_connection.png}}+The File Fabric's S3 interface can be used with almost any S3-compatible tool including Storage Made Easy's S3 Cloud Explorer and AWS' command line interface (AWS CLI).  Here are links to some information about those tools: 
 +  * [[https://aws.amazon.com/cli/|awscli]] - Allowing command line access to cloud files 
 +  * [[https://blog.storagemadeeasy.com/the-comprehensive-guide-to-installing-aws-cli-on-windows-mac-or-linux/|The Comprehensive Guide to Installing AWS CLI on Windows, Mac or Linux]] 
 +  * [[https://blog.storagemadeeasy.com/simplifying-aws-s3-cli-usage-with-aliases/|Simplifying AWS S3 CLI Usage with Aliases]] 
 +  * [[https://blog.storagemadeeasy.com/how-to-use-the-aws-cli-with-almost-any-storage/|How to use the AWS CLI with almost any Storage]]
  
-Now you can choose to access the service using the CloudBerry explorer:+## API Implementation
  
-===== 4 Accessing Service ===== +The File Fabric implements the following Amazon S3 operations:
- +
-{{:/s3compatibleapi:steps:sme_4_accessing_service.png}} +
- +
-You can can now browse, download, upload files directly from your SME Clouds which is happening over the S3 API. +
- +
-===== 5 Working with Clouds ===== +
- +
-{{:/s3compatibleapi:steps:sme_5_working_with_clouds.png}} +
- +
-This screenshot shows the root view of the Google Docs folder being access via CloudBerry using the S3 compatible API. Accessing different Clouds is just as easy as changing directories for Clouds that are mapped to an account. +
- +
-===== 6 Usefulness ===== +
- +
-{{:/s3compatibleapi:steps:sme_6_usefulness.png}} +
- +
-The S3 API can be useful in a number of scenarios. For example: +
-  * Building an S3 compatible Cloud but using one or more different Storage implementations to deliver it, using the SMEStorage Cloud Appliance. +
-  * Transitioning from existing S3 use to a different Cloud but without having to change code ie. only changing the endpoint implementation +
-  * Using S3 Tools and scripts to work with Clouds other than S3 +
- +
-===== 7 Useful Apps ===== +
- +
-{{:/s3compatibleapi:steps:sme_7_useful_apps.png}} +
- +
-Useful Apps for interacting with SME over the Amazon S3 API are: +
-  * [[http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx|CloudBerry]] (Windows)\\ [[http://cyberduck.ch|Cyberduck]] (Windows /Mac)\\ [[http://storagemadeeasy.com/wiki/cloudmigration/|SME Cloud Migration Assistant]] (Windows) +
- +
- +
-===== 8 Note! ===== +
- +
-{{:/s3compatibleapi:steps:sme_8_note.png}} +
- +
-SME S3 API does not support multi-part upload (as it makes no sense   as we interacting with back end clouds that do not support it).  +
- +
-Certain S3 client tools may need you to change a setting to turn off multi-part upload. +
- +
-For example you need to do this with Cyberduck.Multipart uploads can be disabled by setting the hidden option s3.upload.multipart to false..   See https://trac.cyberduck.ch/wiki/help/en/howto/s3 for further information. +
- +
-SME supports the following Amazon S3 API Requests:\\ \\ +
-**PUT request** to create a bucket http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html\\ \\ **GET bucket location** http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html\\ \\ **DELETE delete bucket** http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html\\ \\ **GET** to list buckets http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html\\ \\ **GET** to list contents of a bucket (objects list) http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html\\ \\ **PUT object** to upload new file http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html\\ \\ **DELETE** to delete object from bucket http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html\\ \\ **PUT with header** x-amz-copy-source to copy object http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html\\ \\ **HEAD** to get object metadata http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html+
  
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html|PUT request]]** to create a bucket 
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html|GET bucket location]]**
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html|DELETE bucket]]**
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html|GET]]** to list buckets 
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html|GET]]** to list contents of a bucket (list objects)
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html|PUT object]]** to upload new file
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html|DELETE]]** to delete object from bucket 
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html|PUT with header]]** x-amz-copy-source to copy object 
 + * **[[http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html|HEAD]]** to get object metadata
  
 +## S3 Signatures Supported
  
 +The S3 API supports V2 and V4 signatures. Which one is used is dependent on the client request.