Amazon Simple Storage Service
Developer Guide (API Version 2006-03-01)
Search:
Entire Site
AMIs
Articles & Tutorials
AWS Product Information
Case Studies
Customer Apps
Developer Tools
Documentation
Public Data Sets
Release Notes
Solution Providers
Sample Code & Libraries
Welcome to Amazon S3
Introduction to Amazon S3
Making Requests
Making Requests using AWS SDKs
Making Requests Using AWS Account or IAM User Credentials
Making Requests Using AWS Account or IAM User Credentials - AWS SDK for Java
Making Requests Using AWS Account or IAM User Credentials - AWS SDK for .NET
Making Requests Using AWS Account or IAM User Credentials - AWS SDK for PHP
Making Requests Using AWS Account or IAM User Credentials - AWS SDK for Ruby
Making Requests Using IAM User Temporary Credentials
Making Requests Using IAM User Temporary Credentials - AWS SDK for Java
Making Requests Using IAM User Temporary Credentials - AWS SDK for .NET
Making Requests Using IAM User Temporary Credentials - AWS SDK for PHP
Making Requests Using IAM User Temporary Credentials - AWS SDK for Ruby
Making Requests Using Federated User Temporary Credentials
Making Requests Using Federated User Temporary Credentials - AWS SDK for Java
Making Requests Using Federated User Temporary Credentials - AWS SDK for .NET
Making Requests Using Federated User Temporary Credentials - AWS SDK for PHP
Making Requests Using Federated User Temporary Credentials - AWS SDK for Ruby
Making Requests using the REST API
Authenticating Requests Using the REST API
Signing and Authenticating REST Requests
Virtual Hosting of Buckets
Request Redirection and the REST API
Browser-Based Uploads Using POST
HTML Forms
Upload Examples
POST with Adobe Flash
Working with Amazon S3 Buckets
Bucket Restrictions and Limitations
Bucket Configuration Options
Buckets and Regions
Managing Bucket Website Configuration
Managing Websites with the AWS Management Console
Managing Websites with the AWS SDK for Java
Managing Websites with the AWS SDK for .NET
Managing Websites with the AWS SDK for PHP
Managing Websites with the REST API
Requester Pays Buckets
Configure Requester Pays by Using the Amazon S3 Console
Configure Requester Pays Using REST API
Setting the requestPayment Bucket Configuration
Retrieving requestPayment Configuration
Downloading Objects in Requester Pays Buckets
Buckets and Access Control
Billing and Reporting of Buckets
Working with Amazon S3 Objects
Object Key and Metadata
Object Subresources
Object Versioning
Object Lifecycle Management
Object Archival
Object Expiration
Manage Object Lifecycle Using the AWS Management Console
Manage Object Lifecycle Using the AWS SDK for Java
Manage Object Lifecycle Using the AWS SDK for .NET
Manage Object Lifecycle Using the REST API
Enabling Cross-Origin Resource Sharing
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS Management Console
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for Java
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for .NET
Enabling Cross-Origin Resource Sharing (CORS) Using the REST API
Operations on Objects
Multipart Upload Overview
Quick Facts
API Support for Multipart Upload
Multipart Upload API and Permissions
Getting Objects
Get an Object Using the AWS SDK for Java
Get an Object Using the AWS SDK for .NET
Get an Object Using the AWS SDK for PHP
Get an Object Using REST API
Share an Object with Others
Generate Pre-signed Object URL using AWS Explorer for Visual Studio
Generate Pre-signed Object URL using AWS SDK for Java
Generate Pre-signed Object URL using AWS SDK for .NET
Uploading Objects
Uploading Objects in a Single Operation
Upload an Object Using the AWS SDK for Java
Upload an Object Using the AWS SDK for .NET
Upload an Object Using the AWS SDK for PHP
Upload an Object Using the AWS SDK for Ruby
Upload an Object Using the REST API
Uploading Objects Using Multipart Upload API
Using the AWS SDK for Java for Multipart Upload
Using the High-Level Java API for Multipart Upload
Upload a File
Abort Multipart Uploads
Track Multipart Upload Progress
Using the Low-Level Java API for Multipart Upload
Upload a File
List Multipart Uploads
Abort a Multipart Upload
Using the AWS SDK for .NET for Multipart Upload
Using the High-Level .NET API for Multipart Upload
Upload a File
Upload a Directory
Abort Multipart Uploads
Track Multipart Upload Progress
Using the Low-Level .NET API for Multipart Upload
Upload a File
List Multipart Uploads
Track Multipart Upload Progress
Abort a Multipart Upload
Using the AWS SDK for PHP for Multipart Upload
Using the High-Level PHP API for Multipart Upload
Upload a File
Using the Low-Level PHP API for Multipart Upload
Upload a File
List Multipart Uploads
Abort a Multipart Upload
Using the REST API for Multipart Upload
Uploading Objects Using Pre-Signed URLs
Upload an Object Using Pre-Signed URL - AWS SDK for Java
Upload an Object Using Pre-Signed URL - AWS SDK for .NET
Upload an Object Using Pre-Signed URL - AWS SDK for Ruby
Copying Objects
Copying Objects in a Single Operation
Copy an Object Using the AWS SDK for Java
Copy an Object Using the AWS SDK for .NET
Copy an Object Using the AWS SDK for PHP
Copy an Object Using the AWS SDK for Ruby
Copy an Object Using the REST API
Copying Objects Using the Multipart Upload API
Copy an Object Using the AWS SDK for Java Multipart Upload API
Copy an Object Using the AWS SDK for .NET Multipart Upload API
Copy Object Using the REST Multipart Upload API
Listing Object Keys
Listing Keys Hierarchically Using Prefix and Delimiter
Listing Keys Using the AWS SDK for Java
Listing Keys Using the AWS SDK for .NET
Listing Keys Using the AWS SDK for PHP
Listing Keys Using the REST API
Deleting Objects
Deleting One Object Per Request
Deleting an Object Using the AWS SDK for Java
Deleting an Object Using the AWS SDK for .NET
Deleting an Object Using the AWS SDK for PHP
Deleting an Object Using the REST API
Deleting Multiple Objects Per Request
Deleting Multiple Objects Using the AWS SDK for Java
Deleting Multiple Objects Using the AWS SDK for .NET
Deleting Multiple Objects Using the AWS SDK for PHP
Deleting Multiple Objects Using the REST API
Restoring Objects
Restore an Object Using Console
Restore an Object Using the AWS SDK for Java
Restore an Object Using the AWS SDK for .NET
Restore an Object Using REST API
Access Control
Using IAM Policies
An Example: Using IAM policies to control access to your bucket
Using Bucket Policies
Writing Bucket Policies
Setting Bucket Policies on a Bucket
Returning the Bucket Policies on a Bucket
Deleting Bucket Policies on a Bucket
Example Cases for Amazon S3 Bucket Policies
How to Use Resources, Principals, Operations, and Conditions in Bucket Policies
Using ACLs
Access Control List (ACL) Overview
Managing ACLs
Managing ACLs in the AWS Management Console
Managing ACLs Using the AWS SDK for Java
Managing ACLs Using the AWS SDK for .NET
Managing ACLs Using the REST API
When to Use ACLs vs. Bucket Policies
Using ACLs and Bucket Policies Together
Using Query String Authentication
Data Protection
Using Data Encryption
Using Server-Side Encryption
Specifying Server-Side Encryption Using the AWS SDK for Java
Specifying Server-Side Encryption Using the AWS SDK for .NET
Specifying Server-Side Encryption Using the AWS SDK for PHP
Specifying Server-Side Encryption Using the AWS SDK for Ruby
Specifying Server-Side Encryption Using REST API
Specifying Server-Side Encryption Using the AWS Management Console
Using Client-Side Encryption
Specifying Client-Side Encryption Using the AWS SDK for Java
Customizing Your Client-Side Encryption Environment
Using Reduced Redundancy Storage
Setting the Storage Class of an Object You Upload
Changing the Storage Class of an Object in Amazon S3
Return Code For Lost Data
Using Versioning
Enabling a Bucket's Versioning State
MFA Delete
Enabling Versioning
Configuring a Bucket with MFA Delete
Suspending Versioning
Determining the Versioning State
Adding Objects to Versioning-Enabled Buckets
Listing the Objects in a Versioning-Enabled Bucket
Retrieving a Subset of Objects in Buckets
Retrieving All Versions of a Key
Retrieving Additional Object Versions after Exceeding Max-Keys
Retrieving Object Versions
Retrieving the Metadata of an Object Version
Deleting Object Versions
Using MFA Delete
Working With Delete Markers
Removing Delete Markers
Restoring Previous Versions
Versioned Object Permissions and ACLs
Working with Versioning-Suspended Buckets
Adding Objects to Versioning-Suspended Buckets
Retrieving Objects from Versioning-Suspended Buckets
Deleting Objects from Versioning-Suspended Buckets
Hosting a Static Website on Amazon S3
Website Endpoints
Configure a Bucket for Website Hosting
Index Document Support
Custom Error Document Support
Configuring a Redirect
Permissions Required for Website Access
Example Walkthroughs
Example: Setting Up a Static Website
Example: Setting Up a Static Website Using a Custom Domain
Setting Up Notification of Bucket Events
Request Routing
Request Redirection and the REST API
DNS Considerations
Performance Optimization
TCP Window Scaling
TCP Selective Acknowledgement
Using BitTorrent with Amazon S3
How You are Charged for BitTorrent Delivery
Using BitTorrent to Retrieve Objects Stored in Amazon S3
Publishing Content Using Amazon S3 and BitTorrent
Using Amazon DevPay with Amazon S3
Amazon S3 Customer Data Isolation
Amazon DevPay Token Mechanism
Amazon S3 and Amazon DevPay Authentication
Amazon S3 Bucket Limitation
Amazon S3 and Amazon DevPay Process
Additional Information
Handling Errors
The REST Error Response
Error Response
Error Code
Error Message
Further Details
The SOAP Error Response
Amazon S3 Error Best Practices
Server Access Logging
Server Access Logging Configuration API
Delivery of Server Access Logs
Server Access Log Format
Setting Up Server Access Logging
Using the AWS SDKs and Explorers
Using the AWS SDK for Java
Using the AWS SDK for .NET
Using the AWS SDK for PHP
Using the AWS SDK for Ruby
Using the AWS SDK for Python (Boto)
Appendices
Appendix A: The Access Policy Language
Overview
Key Concepts
Architectural Overview
Using the Access Policy Language
Evaluation Logic
How to Write a Policy
Basic Policy Structure
Element Descriptions
Supported Data Types
Special Information for Amazon S3 Policies
Appendix B: Using the SOAP API
Common SOAP API Elements
Authenticating SOAP Requests
Setting Access Policy with SOAP
Amazon S3 Resources
Document History
Glossary
Index
AWS Documentation
»
Amazon Simple Storage Service (S3)
»
Developer Guide
»
« Previous
Did this page help you?
Yes
|
No
|
Tell us about it...
Index
Symbols
100-continue,
Redirects and 100-Continue
A
access control,
Access Control
access control policies,
Appendix A: The Access Policy Language
access logs,
Delivery of Server Access Logs
access policy
SOAP,
Setting Access Policy with SOAP
adding a cors configuration ,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for Java
,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for .NET
adding a lifecycle configuration ,
Manage Object Lifecycle Using the AWS SDK for .NET
Adobe Flash,
Browser-Based Uploads Using POST
Amazon DevPay,
Using Amazon DevPay with Amazon S3
API,
Amazon S3 Application Programming Interfaces (API)
REST,
The REST Interface
,
Making Requests using the REST API
SOAP,
The SOAP Interface
appendix,
Appendices
authentication,
Access Control
debugging,
REST Request Signing Problems
REST,
Signing and Authenticating REST Requests
SOAP,
Authenticating SOAP Requests
authentication header,
The Authentication Header
B
billing,
Paying for Amazon S3
BitTorrent,
Using BitTorrent with Amazon S3
charges,
How You are Charged for BitTorrent Delivery
publishing,
Publishing Content Using Amazon S3 and BitTorrent
retrieving objects,
Using BitTorrent to Retrieve Objects Stored in Amazon S3
browser uploads,
Browser-Based Uploads Using POST
bucket permissions,
Permissions Required for Website Access
buckets,
Buckets
,
Working with Amazon S3 Buckets
access control,
Buckets and Access Control
billing,
Billing and Reporting of Buckets
configuration,
Bucket Configuration Options
location selection,
Buckets and Regions
notifications of events,
Setting Up Notification of Bucket Events
restrictions,
Bucket Restrictions and Limitations
virtual hosting,
Virtual Hosting of Buckets
C
CanonicalizedAmzHeaders element,
Constructing the CanonicalizedAmzHeaders Element
changes,
Document History
charges,
Paying for Amazon S3
client-side encryption,
Using Client-Side Encryption
components,
Amazon S3 Concepts
concepts
API,
Amazon S3 Application Programming Interfaces (API)
buckets,
Buckets
components,
Amazon S3 Concepts
keys,
Keys
objects,
Objects
operations,
Operations
REST API,
The REST Interface
SOAP API,
The SOAP Interface
configuring bucket,
Configure a Bucket for Website Hosting
configuring logging,
Server Access Logging Configuration API
consistency model,
Amazon S3 Data Consistency Model
cors,
Enabling Cross-Origin Resource Sharing
,
Enabling Cross-Origin Resource Sharing (CORS) Using the REST API
costs,
Paying for Amazon S3
D
data model,
Amazon S3 Data Consistency Model
delete multipart upload,
Multipart Upload Overview
delimiter,
Listing Keys Hierarchically Using Prefix and Delimiter
DevPay,
Using Amazon DevPay with Amazon S3
DNS,
DNS Considerations
DNS routing,
DNS Routing
,
Temporary Request Redirection
,
Permanent Request Redirection
E
elements
REST,
Managing ACLs Using the AWS SDK for Java
,
Managing ACLs Using the AWS SDK for .NET
,
Managing ACLs Using the REST API
,
Using the AWS SDK for Java
,
Using the AWS SDK for .NET
,
Using the AWS SDK for PHP
,
Using the AWS SDK for Ruby
SOAP,
Common SOAP API Elements
errors,
Error Code
details,
Further Details
isolation,
Isolate Errors
messages,
Error Message
response,
Error Response
REST response,
The REST Error Response
SlowDown,
Tune Application for Repeated SlowDown errors
SOAP response,
The SOAP Error Response
events
setting up notification of,
Setting Up Notification of Bucket Events
F
features,
Advantages to Amazon S3
file size, maximum,
Advantages to Amazon S3
Flash, Adobe,
Browser-Based Uploads Using POST
G
glossary, resources, mime
creating a job,
Appendices
guide organization,
How Do I...?
H
hosting websites,
Hosting a Static Website on Amazon S3
,
Website Endpoints
,
Example: Setting Up a Static Website
manage website configuration,
Managing Bucket Website Configuration
,
Example: Setting Up a Static Website Using a Custom Domain
HTTP user agents,
Redirects and HTTP User-Agents
I
index document,
Hosting a Static Website on Amazon S3
initiate multipart upload,
Multipart Upload Overview
introduction,
Introduction to Amazon S3
J
Java,
DNS Considerations
java sdk
multipart upload,
Using the AWS SDK for Java for Multipart Upload
JVM cache,
DNS Considerations
K
keys,
Keys
listing hierarchically,
Listing Keys Hierarchically Using Prefix and Delimiter
multi-page results,
Iterating Through Multi-Page Results
using,
Listing Object Keys
L
lifecycle configuration
adding using Java,
Manage Object Lifecycle Using the AWS SDK for Java
list multipart upload parts,
Multipart Upload Overview
listing keys, hierarchically,
Listing Keys Hierarchically Using Prefix and Delimiter
location constraints,
Buckets and Regions
logs,
Server Access Logging
best effort delivery,
Best Effort Server Log Delivery
changing settings,
BucketLoggingStatus Changes Take Effect Over Time
configuration,
Server Access Logging Configuration API
delivery,
Delivery of Server Access Logs
format,
Server Access Log Format
setting up,
Setting Up Server Access Logging
M
manage s3 website AWS SDK,
Managing Websites with the AWS SDK for Java
,
Managing Websites with the AWS SDK for .NET
,
Managing Websites with the AWS SDK for PHP
manage s3 website configuration,
Managing Bucket Website Configuration
,
Example: Setting Up a Static Website Using a Custom Domain
manage s3 website using REST,
Managing Websites with the REST API
manage website configuration using console,
Managing Websites with the AWS Management Console
metadata, using,
Object Key and Metadata
model,
Amazon S3 Data Consistency Model
multipart upload
java sdk,
Using the AWS SDK for Java for Multipart Upload
large object upload,
Uploading Objects Using Multipart Upload API
large objects,
Uploading Objects Using Multipart Upload API
REST API,
Using the REST API for Multipart Upload
,
Copying Objects Using the Multipart Upload API
multipart upload process,
Multipart Upload Overview
multipart upload using aws sdk,
Using the AWS SDK for .NET for Multipart Upload
,
Using the AWS SDK for PHP for Multipart Upload
N
notifications
setting up,
Setting Up Notification of Bucket Events
O
object archive
using the AWS SDK for .NET,
Manage Object Lifecycle Using the AWS SDK for .NET
object deletion,
Object Archival (Transition Objects to the Glacier Storage Class)
,
Object Expiration
,
Manage Object Lifecycle Using the AWS Management Console
object expiration,
Object Archival (Transition Objects to the Glacier Storage Class)
,
Object Expiration
,
Manage Object Lifecycle Using the AWS Management Console
using the AWS SDK for .NET,
Manage Object Lifecycle Using the AWS SDK for .NET
using the AWS SDK for Java,
Manage Object Lifecycle Using the AWS SDK for Java
object expiration api,
Manage Object Lifecycle Using the REST API
object lifecycle,
Object Archival (Transition Objects to the Glacier Storage Class)
,
Object Expiration
,
Manage Object Lifecycle Using the AWS Management Console
using the AWS SDK for .NET,
Manage Object Lifecycle Using the AWS SDK for .NET
using the AWS SDK for Java,
Manage Object Lifecycle Using the AWS SDK for Java
object lifecycle api,
Manage Object Lifecycle Using the REST API
object removal,
Object Archival (Transition Objects to the Glacier Storage Class)
,
Object Expiration
,
Manage Object Lifecycle Using the AWS Management Console
using the AWS SDK for Java,
Manage Object Lifecycle Using the AWS SDK for Java
object size, maximum,
Advantages to Amazon S3
objects,
Objects
deleting,
Deleting Objects
,
An Example: Using IAM policies to control access to your bucket
getting,
Getting Objects
,
Restoring Objects
using,
Working with Amazon S3 Objects
operations,
Operations
organization of guide,
How Do I...?
overview,
Overview of Amazon S3
P
pagination,
Iterating Through Multi-Page Results
paying,
Paying for Amazon S3
performance optimization,
Performance Optimization
PHP virtual machine,
DNS Considerations
policies,
Appendix A: The Access Policy Language
POST,
Browser-Based Uploads Using POST
prefix,
Listing Keys Hierarchically Using Prefix and Delimiter
R
redirection,
Request Redirection and the REST API
permanent,
Permanent Request Redirection
request,
Request Redirection and the REST API
temporary,
Temporary Request Redirection
Reduced Redundancy Storage,
Using Reduced Redundancy Storage
referrer,
Server Access Log Format
Region,
Buckets and Regions
,
Common SOAP API Elements
request redirection,
Request Redirection and the REST API
access policy,
Request Redirection and the REST API
request routing,
Request Routing
REST
API,
Making Requests using the REST API
authentication,
Signing and Authenticating REST Requests
examples,
Authentication Examples
header,
The Authentication Header
debugging authentication,
REST Request Signing Problems
elements,
Managing ACLs Using the AWS SDK for Java
,
Managing ACLs Using the AWS SDK for .NET
,
Managing ACLs Using the REST API
,
Using the AWS SDK for Java
,
Using the AWS SDK for .NET
,
Using the AWS SDK for PHP
,
Using the AWS SDK for Ruby
POST,
Browser-Based Uploads Using POST
StringToSign,
Positional versus Named HTTP Header StringToSign Elements
time stamp,
Time Stamp Requirement
restrictions,
Bucket Restrictions and Limitations
routing,
Request Routing
DNS,
DNS Routing
RRS,
Using Reduced Redundancy Storage
S
s3 bucket as website,
Hosting a Static Website on Amazon S3
,
Configure a Bucket for Website Hosting
S3 bucket as website,
Example: Setting Up a Static Website
s3 cors,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS Management Console
,
Enabling Cross-Origin Resource Sharing (CORS) Using the REST API
using the AWS SDK for .NET,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for .NET
using the AWS SDK for Java,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for Java
S3 endpoints,
Website Endpoints
S3 object lifecycle management,
Manage Object Lifecycle Using the AWS Management Console
using the AWS SDK for .NET,
Manage Object Lifecycle Using the AWS SDK for .NET
using the AWS SDK for Java,
Manage Object Lifecycle Using the AWS SDK for Java
s3 website hosting,
Permissions Required for Website Access
s3 website index document,
Index Document Support
server access logs,
Server Access Logging
,
Delivery of Server Access Logs
server-side encryption,
Using Server-Side Encryption
SetObjectAccessControlPolicy
SOAP,
Using BitTorrent with Amazon S3
shared queues,
Appendix A: The Access Policy Language
signature, creating,
Creating a Signature
size, object,
Advantages to Amazon S3
SOAP
access policy,
Setting Access Policy with SOAP
authentication,
Authenticating SOAP Requests
elements,
Common SOAP API Elements
error response,
The SOAP Error Response
storage limit,
Advantages to Amazon S3
StringToSign,
Positional versus Named HTTP Header StringToSign Elements
system metadata,
Object Key and Metadata
T
TCP optimization,
Performance Optimization
time stamp,
Time Stamp Requirement
TTLs, clients,
DNS Considerations
U
updating a cors configuration,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for Java
,
Enabling Cross-Origin Resource Sharing (CORS) Using the AWS SDK for .NET
updating a lifecyle configuration,
Manage Object Lifecycle Using the AWS SDK for Java
,
Manage Object Lifecycle Using the AWS SDK for .NET
uploads, browser,
Browser-Based Uploads Using POST
user metadata,
Object Key and Metadata
V
versioning,
Using Versioning
virtual hosted buckets,
Virtual Hosting of Buckets
virtual machines,
DNS Considerations
W
website configuration,
Permissions Required for Website Access
Javascript is disabled or is unavailable in your browser.
To use the AWS Documentation, Javascript must be enabled. Please refer to your browser's Help pages for instructions.