SlideShare a Scribd company logo
1 of 8
Download to read offline
STORAGE S3 API
Lunacloud Tel: 0845 0730827
21 Southampton Row Email: info@lunacloud.com
WC1B 5HA London www.lunacloud.com
Storage
S3 API
Programmer’s Guide
Revision 1.0 (20/04/2012)
STORAGE API
www.lunacloud.com 2 of 8
Table of Contents
CHAPTER 1 3	
  
LUNACLOUD STORAGE COMPLIANCE WITH THE AMAZON S3 REST API 3	
  
COMMON REQUEST HEADERS 3	
  
COMMON RESPONSE HEADERS 3	
  
OPERATIONS ON THE SERVICE 3	
  
OPERATIONS ON BUCKETS 3	
  
OPERATIONS ON OBJECTS 5	
  
ACL SUPPORT 6	
  
ERROR RESPONSES 6	
  
CHAPTER 2 8	
  
DEVELOPING LUNACLOUD STORAGE CLIENT APPLICATIONS: GENERAL GUIDELINES 8	
  
JUST LIKE DEVELOPING FOR AMAZON S3 8	
  
WHAT’S DISTINCT ABOUT LUNACLOUD STORAGE DEVELOPMENT 8	
  
STORAGE API
www.lunacloud.com 3 of 8
Chapter 1
Lunacloud storage compliance with the Amazon S3 REST API
Lunacloud storage supports a large portion of the Amazon S3 REST API, and complies strictly with that
portion. Lunacloud storage does not support the Amazon S3 SOAP API.
For general information about the Amazon S3 API, see the Amazon Simple Storage Service API
Reference (version 2006-03-01).
The sections below describe the specifics of Lunacloud storage's compliance with the S3 REST API.
The organization parallels that of the Amazon S3 API Reference. Where appropriate, links are
provided to specific parts of Amazon’s API Reference.
Common request headers
From the list of Amazon S3 REST API Common Request Headers, Lunacloud storage supports all
headers except x-amz-security-token.
Common response headers
From the list of Amazon S3 REST API Common Response Headers, Lunacloud storage supports all
headers except for:
• x-amz-id-2
• x-amz-request-id
Operations on the service
Supported Operations
Lunacloud storage supports and is fully compliant with the following service operation from the
Amazon S3 REST API:
• GET Service
This is the only service-level operation in the S3 API.
Operations on buckets
Supported Operations
STORAGE API
www.lunacloud.com 4 of 8
Lunacloud storage supports and is fully compliant with the following bucket operations from the
Amazon S3 REST API:
• DELETE Bucket
• GET Bucket (List Objects)
• GET Bucket ACL
• GET Bucket Location
• GET Bucket logging
• GET Bucket Object versions
• GET Bucket versioning
• PUT Bucket
• PUT Bucket ACL
• PUT Bucket logging
• PUT Bucket versioning
Note: Lunacloud storage supports LocationConstraint.
Not Supported
Lunacloud storage does not currently support these Amazon S3 bucket operations:
• DELETE Bucket lifecycle
• DELETE Bucket website
• GET Bucket lifecycle
• GET Bucket logging
• GET Bucket notification
• GET Bucket requestPayment
• GET Bucket website
• List Multipart Uploads
• PUT Bucket lifecycle
• PUT Bucket logging
• PUT Bucket notification
• PUT Bucket requestPayment
• PUT Bucket website
Partial Support for Bucket Policy
For Bucket Policy (PUT, GET, DELETE) only the below functions and defined formats are supported.
Cloud Storage behaviour for other formats of ACP is undefined.
Referer condition for GetObject
The only accepted format is the below that allows GetObject on the bucket from only the specified
referrer URIs.
• "Effect":"Allow"
STORAGE API
www.lunacloud.com 5 of 8
• "Principal": { "AWS":"*" }
• "Action":"s3:GetObject"
• "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME"
o YOUR-BUCKET-NAME is the bucketname.
• "Condition":{"StringLike":{"aws:Referer":["URI-1"]}, "StringLike":{"aws:Referer":["URI-2"]} }
o Multiple StringLike? conditions can be specified.
o URI value (e.g., URI-1 and URI-2) is compared to HTTP Referer header with case-
insensitive matching and multi-character wildcard (*) and single-character wildcard (?).
Operations on objects
Supported Operations
Lunacloud storage supports and is fully compliant with the following object operations from the
Amazon S3 REST API:
• DELETE Object
o x-amz-mfa is not currently supported.
• GET Object
o response-* headers are not currently supported.
o HTTP headers supported: Range, If-Modified-Since, If-Unmodified-Since, If-Match, If-
None-Match
• GET Object ACL
• HEAD Object
• PUT Object
o x-amz-storage-class is always STANDARD.
Note: Object whose names consist solely of ".." or "/" will be rejected with an error response.
• PUT Object ACL
• PUT Object Copy
• Initiate Multipart Upload
Note: Amazon recommends using multipart upload for objects 100MB or larger, and that is a good
guideline for Lunacloud as well. For S3 developer guidance on multipart upload, see Uploading
Objects Using Multipart Upload API from the AWS documentation.
• Upload Part
• Complete Multipart Upload
• Abort Multipart Upload
• List Parts
Not Supported
Lunacloud storage currently does not support these Amazon S3 object operations:
STORAGE API
www.lunacloud.com 6 of 8
• GET Object torrent
• POST Object
• Upload Part - Copy
ACL support
Regarding Amazon S3 ACL functionality:
• For grantee user groups, the following are supported:
o Authenticated users group
o All users group
Lunacloud storage does not support Log delivery group.
• For Canned ACL, the following are supported:
o private
o public-read
o public-read-write
o authenticated-read
Lunacloud storage ignores other canned ACLs.
Error responses
From the set of Amazon S3 Error Responses, Lunacloud storage uses the subset of errors listed below.
Lunacloud storage’s usages of these errors, and its mapping of errors to HTTP status codes, complies
with the Amazon specification.
• AccessDenied
• AccountProblem
• BadDigest
• BucketAlreadyExists
• BucketNotEmpty
• EntityTooLarge
• IllegalVersioningConfigurationException
• InternalError
• InvalidAccessKeyId
• InvalidArgument
• InvalidBucketName
• InvalidLocationConstraint
• InvalidPart
• InvalidRange
• InvalidURI
• KeyTooLong
• MalformedXML
STORAGE API
www.lunacloud.com 7 of 8
• MissingContentLength
• NoSuchBucket
• NoSuchKey
• NoSuchUpload
• NotImplemented
• PreconditionFailed
• SlowDown
• TooManyBuckets
STORAGE API
www.lunacloud.com 8 of 8
Chapter 2
Developing Lunacloud storage client applications: General
Guidelines
Just like developing for Amazon S3
In nearly every way, developing a client application for Lunacloud storage is the same as developing a
client application for Amazon S3. Consequently, when designing and building Lunacloud storage
applications you can leverage the wealth of resources available to Amazon S3 developers.
The best place to turn for resources for developing Amazon S3 and Lunacloud storage applications is
the Amazon Web Services (AWS) S3 web site. On that site, Developer Centers are available for a
variety of development technologies:
• AWS Java Developer Center
• AWS Windows/.NET Developer Center
• AWS PHP Developer Center
• AWS Python Developer Center
• AWS Ruby Developer Center
AWS Developer Centers include SDKs, community libraries, "Getting Started" guides, and tips and
tricks.
Another good AWS resource is the archive of Articles & Tutorials. The archive includes general
articles such as "Best Practices for Using Amazon S3" as well as articles and tutorials relating to
specific development technologies.
Yet another helpful AWS resource is the archive of Sample Code & Libraries.
What’s distinct about Lunacloud storage development
In practice, the main differences between developing for Amazon S3 and developing for Lunacloud
storage are:
• Lunacloud storage supports most of but not the entire Amazon S3 API. See Chapter 1 for
details.
• Lunacloud storage client applications must use the Lunacloud storage service endpoint
(lcs.lunacloud.com) rather than the Amazon S3 service endpoint.
• Lunacloud storage client applications must use HTTP, while Amazon S3 client libraries default
to using HTTPS.

More Related Content

What's hot

(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014
(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014
(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014Amazon Web Services
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Amazon Web Services
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...Amazon Web Services
 
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...Amazon Web Services
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAmazon Web Services
 
Owin from spec to application
Owin from spec to applicationOwin from spec to application
Owin from spec to applicationdamian-h
 
Your First multi tier Serverless Architecture on AWS
Your First multi tier Serverless Architecture on AWSYour First multi tier Serverless Architecture on AWS
Your First multi tier Serverless Architecture on AWSJeshan Babooa
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014scolestock
 
Aws meetup ssm
Aws meetup ssmAws meetup ssm
Aws meetup ssmAdam Book
 
How to create aws s3 bucket using terraform
How to create aws s3 bucket using terraformHow to create aws s3 bucket using terraform
How to create aws s3 bucket using terraformKaty Slemon
 
Spring boot-application
Spring boot-applicationSpring boot-application
Spring boot-applicationParag Patil
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBMongoDB
 
Aws atlanta march_2015
Aws atlanta march_2015Aws atlanta march_2015
Aws atlanta march_2015Adam Book
 
MesosCon 2017 - OpenWhisk as an Apache Mesos Framework
MesosCon 2017 - OpenWhisk as an Apache Mesos FrameworkMesosCon 2017 - OpenWhisk as an Apache Mesos Framework
MesosCon 2017 - OpenWhisk as an Apache Mesos FrameworkDragos Dascalita Haut
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideMohanraj Thirumoorthy
 
Resource Management in the Enterprise Data Center
Resource Management in the Enterprise Data CenterResource Management in the Enterprise Data Center
Resource Management in the Enterprise Data CenterRaghvender Arni
 
OWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISOWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISBilal Haidar
 

What's hot (20)

(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014
(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014
(APP201) Going Zero to Sixty with AWS Elastic Beanstalk | AWS re:Invent 2014
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
 
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...
AWS July Webinar Series-Deploying and Scaling Web Application with AWS Elasti...
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
 
Owin from spec to application
Owin from spec to applicationOwin from spec to application
Owin from spec to application
 
Your First multi tier Serverless Architecture on AWS
Your First multi tier Serverless Architecture on AWSYour First multi tier Serverless Architecture on AWS
Your First multi tier Serverless Architecture on AWS
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014
 
Aws meetup ssm
Aws meetup ssmAws meetup ssm
Aws meetup ssm
 
How to create aws s3 bucket using terraform
How to create aws s3 bucket using terraformHow to create aws s3 bucket using terraform
How to create aws s3 bucket using terraform
 
Spring boot-application
Spring boot-applicationSpring boot-application
Spring boot-application
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
 
Wordpress multisite
Wordpress multisiteWordpress multisite
Wordpress multisite
 
Aws atlanta march_2015
Aws atlanta march_2015Aws atlanta march_2015
Aws atlanta march_2015
 
MesosCon 2017 - OpenWhisk as an Apache Mesos Framework
MesosCon 2017 - OpenWhisk as an Apache Mesos FrameworkMesosCon 2017 - OpenWhisk as an Apache Mesos Framework
MesosCon 2017 - OpenWhisk as an Apache Mesos Framework
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 
Resource Management in the Enterprise Data Center
Resource Management in the Enterprise Data CenterResource Management in the Enterprise Data Center
Resource Management in the Enterprise Data Center
 
OWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISOWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIIS
 
AWS Elastic Beanstalk
AWS Elastic BeanstalkAWS Elastic Beanstalk
AWS Elastic Beanstalk
 
Owin and katana
Owin and katanaOwin and katana
Owin and katana
 

Viewers also liked

What's the problem you want to solve and why? Europe 2015
What's the problem you want to solve and why? Europe 2015What's the problem you want to solve and why? Europe 2015
What's the problem you want to solve and why? Europe 2015Adam Berk
 
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...Nagios
 
Pla comunicacio eurosenior
Pla comunicacio euroseniorPla comunicacio eurosenior
Pla comunicacio euroseniorjoarxa
 
INBOX - E-Mail Marketing 2015 Sunumu
INBOX - E-Mail Marketing 2015 SunumuINBOX - E-Mail Marketing 2015 Sunumu
INBOX - E-Mail Marketing 2015 SunumuEmin Onur Genc
 
RESUME_sushil__latest_
RESUME_sushil__latest_RESUME_sushil__latest_
RESUME_sushil__latest_SUSHIL SHARMA
 
Referencias
ReferenciasReferencias
Referenciasarogcito
 
Barometre E Assurance Novedia Septembre 2010
Barometre  E Assurance  Novedia Septembre 2010Barometre  E Assurance  Novedia Septembre 2010
Barometre E Assurance Novedia Septembre 2010DYEVRE
 
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...Foundation for Democratic Advancement
 
Salon de Belleza Karla Dongú Cetis 3
Salon de Belleza Karla Dongú Cetis 3Salon de Belleza Karla Dongú Cetis 3
Salon de Belleza Karla Dongú Cetis 3handsome & beautiful
 
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...La emancipación intelectual en la sociedad digital: El maestro ignorante de R...
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...Carlos Magro Mazo
 
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...Roxanne Grinage
 
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"Calendario 2017 "La Industria y el Ejército, un esfuerzo común"
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"Ejército de Tierra
 
Discount for Lack of Control and Marketability
Discount for Lack of Control and MarketabilityDiscount for Lack of Control and Marketability
Discount for Lack of Control and MarketabilityAmer-Street Advisory, Inc.
 
Tcpip services and applications
Tcpip services and applicationsTcpip services and applications
Tcpip services and applicationsOnline
 
Cultura turística para personal de contacto imag
Cultura turística para personal de contacto imagCultura turística para personal de contacto imag
Cultura turística para personal de contacto imaggisspat
 
Los Organos y las Emociones (por: carlitosrangel)
Los Organos y las Emociones (por: carlitosrangel)Los Organos y las Emociones (por: carlitosrangel)
Los Organos y las Emociones (por: carlitosrangel)Carlos Rangel
 

Viewers also liked (20)

What's the problem you want to solve and why? Europe 2015
What's the problem you want to solve and why? Europe 2015What's the problem you want to solve and why? Europe 2015
What's the problem you want to solve and why? Europe 2015
 
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...
Nagios Conference 2012 - Ludmil Miltchev - Bulk Management Of Hosts And Servi...
 
Pla comunicacio eurosenior
Pla comunicacio euroseniorPla comunicacio eurosenior
Pla comunicacio eurosenior
 
INBOX - E-Mail Marketing 2015 Sunumu
INBOX - E-Mail Marketing 2015 SunumuINBOX - E-Mail Marketing 2015 Sunumu
INBOX - E-Mail Marketing 2015 Sunumu
 
Kl converge 2014 seers
Kl converge 2014 seersKl converge 2014 seers
Kl converge 2014 seers
 
RESUME_sushil__latest_
RESUME_sushil__latest_RESUME_sushil__latest_
RESUME_sushil__latest_
 
Referencias
ReferenciasReferencias
Referencias
 
Barometre E Assurance Novedia Septembre 2010
Barometre  E Assurance  Novedia Septembre 2010Barometre  E Assurance  Novedia Septembre 2010
Barometre E Assurance Novedia Septembre 2010
 
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...
United States--2012 FDA Global Electoral Fairness Audit Report (Revised April...
 
Salon de Belleza Karla Dongú Cetis 3
Salon de Belleza Karla Dongú Cetis 3Salon de Belleza Karla Dongú Cetis 3
Salon de Belleza Karla Dongú Cetis 3
 
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...La emancipación intelectual en la sociedad digital: El maestro ignorante de R...
La emancipación intelectual en la sociedad digital: El maestro ignorante de R...
 
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...
Roxanne Grinage Legal Assistant to Michael Nazario Minnesota pro se plaintiff...
 
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"Calendario 2017 "La Industria y el Ejército, un esfuerzo común"
Calendario 2017 "La Industria y el Ejército, un esfuerzo común"
 
Discount for Lack of Control and Marketability
Discount for Lack of Control and MarketabilityDiscount for Lack of Control and Marketability
Discount for Lack of Control and Marketability
 
Tcpip services and applications
Tcpip services and applicationsTcpip services and applications
Tcpip services and applications
 
Cultura turística para personal de contacto imag
Cultura turística para personal de contacto imagCultura turística para personal de contacto imag
Cultura turística para personal de contacto imag
 
Trend report #9
Trend report #9Trend report #9
Trend report #9
 
Los Organos y las Emociones (por: carlitosrangel)
Los Organos y las Emociones (por: carlitosrangel)Los Organos y las Emociones (por: carlitosrangel)
Los Organos y las Emociones (por: carlitosrangel)
 
09 sistemas ubicuos
09 sistemas ubicuos09 sistemas ubicuos
09 sistemas ubicuos
 
VNX Overview
VNX Overview   VNX Overview
VNX Overview
 

Similar to Programmer's Guide to Lunacloud Storage S3 API Compliance

Training AWS: Module 6 - Storage S3 in AWS
Training AWS: Module 6 - Storage S3 in AWSTraining AWS: Module 6 - Storage S3 in AWS
Training AWS: Module 6 - Storage S3 in AWSBùi Quang Lâm
 
Aws overview part 1(iam and storage services)
Aws overview   part 1(iam and storage services)Aws overview   part 1(iam and storage services)
Aws overview part 1(iam and storage services)Parag Patil
 
Automate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaAutomate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaJeffrey Kemp
 
AWS Bath User Group - Meetup #2
AWS Bath User Group - Meetup #2AWS Bath User Group - Meetup #2
AWS Bath User Group - Meetup #2Andy Powell
 
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 mins
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 minsAWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 mins
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 minsAWS User Group - Thailand
 
Webinar: Securely Configuring and Mining AWS CloudTrail
Webinar: Securely Configuring and Mining AWS CloudTrailWebinar: Securely Configuring and Mining AWS CloudTrail
Webinar: Securely Configuring and Mining AWS CloudTrailAaron Klein
 
Deploy, manage, and scale your apps
Deploy, manage, and scale your appsDeploy, manage, and scale your apps
Deploy, manage, and scale your appsAmazon Web Services
 
Using amazon web services with cold fusion 11
Using amazon web services with cold fusion 11Using amazon web services with cold fusion 11
Using amazon web services with cold fusion 11ColdFusionConference
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersAmazon Web Services
 
Documenting REST APIs
Documenting REST APIsDocumenting REST APIs
Documenting REST APIsTom Johnson
 
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...Amazon Web Services
 
Managing AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormationManaging AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormationAnton Babenko
 
Agile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic BeanstalkAgile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic BeanstalkAmazon Web Services
 
Elasticsearch 5 in Amazon Elasticsearch Service
Elasticsearch 5 in Amazon Elasticsearch ServiceElasticsearch 5 in Amazon Elasticsearch Service
Elasticsearch 5 in Amazon Elasticsearch ServiceAmazon Web Services
 
Deep dive into cloud security - Jaimin Gohel & Virendra Rathore
Deep dive into cloud security - Jaimin Gohel & Virendra RathoreDeep dive into cloud security - Jaimin Gohel & Virendra Rathore
Deep dive into cloud security - Jaimin Gohel & Virendra RathoreNSConclave
 
(ARC301) Scaling Up to Your First 10 Million Users
(ARC301) Scaling Up to Your First 10 Million Users(ARC301) Scaling Up to Your First 10 Million Users
(ARC301) Scaling Up to Your First 10 Million UsersAmazon Web Services
 

Similar to Programmer's Guide to Lunacloud Storage S3 API Compliance (20)

Training AWS: Module 6 - Storage S3 in AWS
Training AWS: Module 6 - Storage S3 in AWSTraining AWS: Module 6 - Storage S3 in AWS
Training AWS: Module 6 - Storage S3 in AWS
 
Aws overview part 1(iam and storage services)
Aws overview   part 1(iam and storage services)Aws overview   part 1(iam and storage services)
Aws overview part 1(iam and storage services)
 
Automate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaAutomate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with Alexandria
 
AWS Bath User Group - Meetup #2
AWS Bath User Group - Meetup #2AWS Bath User Group - Meetup #2
AWS Bath User Group - Meetup #2
 
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 mins
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 minsAWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 mins
AWS Community Day Bangkok 2019 - Build a Serverless Web Application in 30 mins
 
Webinar: Securely Configuring and Mining AWS CloudTrail
Webinar: Securely Configuring and Mining AWS CloudTrailWebinar: Securely Configuring and Mining AWS CloudTrail
Webinar: Securely Configuring and Mining AWS CloudTrail
 
Deploy, manage, and scale your apps
Deploy, manage, and scale your appsDeploy, manage, and scale your apps
Deploy, manage, and scale your apps
 
Using amazon web services with cold fusion 11
Using amazon web services with cold fusion 11Using amazon web services with cold fusion 11
Using amazon web services with cold fusion 11
 
AWS essentials S3
AWS essentials S3AWS essentials S3
AWS essentials S3
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
Documenting REST APIs
Documenting REST APIsDocumenting REST APIs
Documenting REST APIs
 
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...
AWS July Webinar Series - Troubleshooting Operational and Security Issues in ...
 
Managing AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormationManaging AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormation
 
Agile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic BeanstalkAgile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic Beanstalk
 
S3inmule
S3inmuleS3inmule
S3inmule
 
Log Analysis At Scale
Log Analysis At ScaleLog Analysis At Scale
Log Analysis At Scale
 
Elasticsearch 5 in Amazon Elasticsearch Service
Elasticsearch 5 in Amazon Elasticsearch ServiceElasticsearch 5 in Amazon Elasticsearch Service
Elasticsearch 5 in Amazon Elasticsearch Service
 
s3
s3s3
s3
 
Deep dive into cloud security - Jaimin Gohel & Virendra Rathore
Deep dive into cloud security - Jaimin Gohel & Virendra RathoreDeep dive into cloud security - Jaimin Gohel & Virendra Rathore
Deep dive into cloud security - Jaimin Gohel & Virendra Rathore
 
(ARC301) Scaling Up to Your First 10 Million Users
(ARC301) Scaling Up to Your First 10 Million Users(ARC301) Scaling Up to Your First 10 Million Users
(ARC301) Scaling Up to Your First 10 Million Users
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Programmer's Guide to Lunacloud Storage S3 API Compliance

  • 1. STORAGE S3 API Lunacloud Tel: 0845 0730827 21 Southampton Row Email: info@lunacloud.com WC1B 5HA London www.lunacloud.com Storage S3 API Programmer’s Guide Revision 1.0 (20/04/2012)
  • 2. STORAGE API www.lunacloud.com 2 of 8 Table of Contents CHAPTER 1 3   LUNACLOUD STORAGE COMPLIANCE WITH THE AMAZON S3 REST API 3   COMMON REQUEST HEADERS 3   COMMON RESPONSE HEADERS 3   OPERATIONS ON THE SERVICE 3   OPERATIONS ON BUCKETS 3   OPERATIONS ON OBJECTS 5   ACL SUPPORT 6   ERROR RESPONSES 6   CHAPTER 2 8   DEVELOPING LUNACLOUD STORAGE CLIENT APPLICATIONS: GENERAL GUIDELINES 8   JUST LIKE DEVELOPING FOR AMAZON S3 8   WHAT’S DISTINCT ABOUT LUNACLOUD STORAGE DEVELOPMENT 8  
  • 3. STORAGE API www.lunacloud.com 3 of 8 Chapter 1 Lunacloud storage compliance with the Amazon S3 REST API Lunacloud storage supports a large portion of the Amazon S3 REST API, and complies strictly with that portion. Lunacloud storage does not support the Amazon S3 SOAP API. For general information about the Amazon S3 API, see the Amazon Simple Storage Service API Reference (version 2006-03-01). The sections below describe the specifics of Lunacloud storage's compliance with the S3 REST API. The organization parallels that of the Amazon S3 API Reference. Where appropriate, links are provided to specific parts of Amazon’s API Reference. Common request headers From the list of Amazon S3 REST API Common Request Headers, Lunacloud storage supports all headers except x-amz-security-token. Common response headers From the list of Amazon S3 REST API Common Response Headers, Lunacloud storage supports all headers except for: • x-amz-id-2 • x-amz-request-id Operations on the service Supported Operations Lunacloud storage supports and is fully compliant with the following service operation from the Amazon S3 REST API: • GET Service This is the only service-level operation in the S3 API. Operations on buckets Supported Operations
  • 4. STORAGE API www.lunacloud.com 4 of 8 Lunacloud storage supports and is fully compliant with the following bucket operations from the Amazon S3 REST API: • DELETE Bucket • GET Bucket (List Objects) • GET Bucket ACL • GET Bucket Location • GET Bucket logging • GET Bucket Object versions • GET Bucket versioning • PUT Bucket • PUT Bucket ACL • PUT Bucket logging • PUT Bucket versioning Note: Lunacloud storage supports LocationConstraint. Not Supported Lunacloud storage does not currently support these Amazon S3 bucket operations: • DELETE Bucket lifecycle • DELETE Bucket website • GET Bucket lifecycle • GET Bucket logging • GET Bucket notification • GET Bucket requestPayment • GET Bucket website • List Multipart Uploads • PUT Bucket lifecycle • PUT Bucket logging • PUT Bucket notification • PUT Bucket requestPayment • PUT Bucket website Partial Support for Bucket Policy For Bucket Policy (PUT, GET, DELETE) only the below functions and defined formats are supported. Cloud Storage behaviour for other formats of ACP is undefined. Referer condition for GetObject The only accepted format is the below that allows GetObject on the bucket from only the specified referrer URIs. • "Effect":"Allow"
  • 5. STORAGE API www.lunacloud.com 5 of 8 • "Principal": { "AWS":"*" } • "Action":"s3:GetObject" • "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME" o YOUR-BUCKET-NAME is the bucketname. • "Condition":{"StringLike":{"aws:Referer":["URI-1"]}, "StringLike":{"aws:Referer":["URI-2"]} } o Multiple StringLike? conditions can be specified. o URI value (e.g., URI-1 and URI-2) is compared to HTTP Referer header with case- insensitive matching and multi-character wildcard (*) and single-character wildcard (?). Operations on objects Supported Operations Lunacloud storage supports and is fully compliant with the following object operations from the Amazon S3 REST API: • DELETE Object o x-amz-mfa is not currently supported. • GET Object o response-* headers are not currently supported. o HTTP headers supported: Range, If-Modified-Since, If-Unmodified-Since, If-Match, If- None-Match • GET Object ACL • HEAD Object • PUT Object o x-amz-storage-class is always STANDARD. Note: Object whose names consist solely of ".." or "/" will be rejected with an error response. • PUT Object ACL • PUT Object Copy • Initiate Multipart Upload Note: Amazon recommends using multipart upload for objects 100MB or larger, and that is a good guideline for Lunacloud as well. For S3 developer guidance on multipart upload, see Uploading Objects Using Multipart Upload API from the AWS documentation. • Upload Part • Complete Multipart Upload • Abort Multipart Upload • List Parts Not Supported Lunacloud storage currently does not support these Amazon S3 object operations:
  • 6. STORAGE API www.lunacloud.com 6 of 8 • GET Object torrent • POST Object • Upload Part - Copy ACL support Regarding Amazon S3 ACL functionality: • For grantee user groups, the following are supported: o Authenticated users group o All users group Lunacloud storage does not support Log delivery group. • For Canned ACL, the following are supported: o private o public-read o public-read-write o authenticated-read Lunacloud storage ignores other canned ACLs. Error responses From the set of Amazon S3 Error Responses, Lunacloud storage uses the subset of errors listed below. Lunacloud storage’s usages of these errors, and its mapping of errors to HTTP status codes, complies with the Amazon specification. • AccessDenied • AccountProblem • BadDigest • BucketAlreadyExists • BucketNotEmpty • EntityTooLarge • IllegalVersioningConfigurationException • InternalError • InvalidAccessKeyId • InvalidArgument • InvalidBucketName • InvalidLocationConstraint • InvalidPart • InvalidRange • InvalidURI • KeyTooLong • MalformedXML
  • 7. STORAGE API www.lunacloud.com 7 of 8 • MissingContentLength • NoSuchBucket • NoSuchKey • NoSuchUpload • NotImplemented • PreconditionFailed • SlowDown • TooManyBuckets
  • 8. STORAGE API www.lunacloud.com 8 of 8 Chapter 2 Developing Lunacloud storage client applications: General Guidelines Just like developing for Amazon S3 In nearly every way, developing a client application for Lunacloud storage is the same as developing a client application for Amazon S3. Consequently, when designing and building Lunacloud storage applications you can leverage the wealth of resources available to Amazon S3 developers. The best place to turn for resources for developing Amazon S3 and Lunacloud storage applications is the Amazon Web Services (AWS) S3 web site. On that site, Developer Centers are available for a variety of development technologies: • AWS Java Developer Center • AWS Windows/.NET Developer Center • AWS PHP Developer Center • AWS Python Developer Center • AWS Ruby Developer Center AWS Developer Centers include SDKs, community libraries, "Getting Started" guides, and tips and tricks. Another good AWS resource is the archive of Articles & Tutorials. The archive includes general articles such as "Best Practices for Using Amazon S3" as well as articles and tutorials relating to specific development technologies. Yet another helpful AWS resource is the archive of Sample Code & Libraries. What’s distinct about Lunacloud storage development In practice, the main differences between developing for Amazon S3 and developing for Lunacloud storage are: • Lunacloud storage supports most of but not the entire Amazon S3 API. See Chapter 1 for details. • Lunacloud storage client applications must use the Lunacloud storage service endpoint (lcs.lunacloud.com) rather than the Amazon S3 service endpoint. • Lunacloud storage client applications must use HTTP, while Amazon S3 client libraries default to using HTTPS.