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

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Recently uploaded (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

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.