SlideShare uma empresa Scribd logo
1 de 50
AMAZON SIMPLE
  STORAGE SERVICE
        (S3)
The Infinite Hard Drive in the Cloud
What is S3?
What is S3?
A RESTful (or SOAP) data storage API
What is S3?
A RESTful (or SOAP) data storage API
Supports HTTP and BitTorrent protocols
  Control headers to serve content straight from S3
What is S3?
A RESTful (or SOAP) data storage API
Supports HTTP and BitTorrent protocols
  Control headers to serve content straight from S3
Full access control per file or user
  Preauthorize direct uploads by users
What is S3?
A RESTful (or SOAP) data storage API
Supports HTTP and BitTorrent protocols
  Control headers to serve content straight from S3
Full access control per file or user
  Preauthorize direct uploads by users
Billed by capacity stored and transfer rates
Everything is Better Online!
Everything is Better Online!
Basic Usage
Basic Usage
Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
#!/usr/bin/env ruby -KU
    $VERBOSE = nil

    require "rubygems"
    require "aws" # sudo gem install aws

    s3 = Aws::S3.new( "ACCESS_KEY_ID",
               "SECRET_ACCESS_KEY",
               :logger => Logger.new("/dev/null") )
    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')
    puts

    print "Creating the bucket graysoftinc... "
    s3.bucket("graysoftinc", :create, "private")
    puts "Done."
    puts

    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
#!/usr/bin/env ruby -KU
    $VERBOSE = nil

    require "rubygems"
    require "aws" # sudo gem install aws

    s3 = Aws::S3.new( "ACCESS_KEY_ID",
               "SECRET_ACCESS_KEY",
               :logger => Logger.new("/dev/null") )
    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')
    puts

    print "Creating the bucket graysoftinc... "
    s3.bucket("graysoftinc", :create, "private")
    puts "Done."
    puts

    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
#!/usr/bin/env ruby -KU
    $VERBOSE = nil

    require "rubygems"
    require "aws" # sudo gem install aws

    s3 = Aws::S3.new( "ACCESS_KEY_ID",
               "SECRET_ACCESS_KEY",
               :logger => Logger.new("/dev/null") )
    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')
    puts

    print "Creating the bucket graysoftinc... "
    s3.bucket("graysoftinc", :create, "private")
    puts "Done."
    puts

    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
#!/usr/bin/env ruby -KU
    $VERBOSE = nil

    require "rubygems"
    require "aws" # sudo gem install aws

    s3 = Aws::S3.new( "ACCESS_KEY_ID",
               "SECRET_ACCESS_KEY",
               :logger => Logger.new("/dev/null") )
    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')
    puts

    print "Creating the bucket graysoftinc... "
    s3.bucket("graysoftinc", :create, "private")
    puts "Done."
    puts

    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
#!/usr/bin/env ruby -KU
    $VERBOSE = nil

    require "rubygems"
    require "aws" # sudo gem install aws

    s3 = Aws::S3.new( "ACCESS_KEY_ID",
               "SECRET_ACCESS_KEY",
               :logger => Logger.new("/dev/null") )
    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')
    puts

    print "Creating the bucket graysoftinc... "
    s3.bucket("graysoftinc", :create, "private")
    puts "Done."
    puts

    puts "Your buckets: " +
       s3.buckets.map { |b| b.name }.join(', ')




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
Your buckets:

        Creating the bucket graysoftinc... Done.

        Your buckets: graysoftinc




Creating/Listing Buckets
  Globally unique “buckets” hold files on S3
Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
#!/usr/bin/env ruby -KU
  $VERBOSE = nil

  require "rubygems"
  require "aws" # sudo gem install aws

  s3 = Aws::S3.new( "ACCESS_KEY_ID",
             "SECRET_ACCESS_KEY",
             :logger => Logger.new("/dev/null") )
  bucket = s3.bucket("graysoftinc")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts

  open(__FILE__) do |f|
   bucket.put("presentations/upload.rb", f)
  end
  bucket.copy_key("presentations/upload.rb", "ruby/upload.rb")

  puts "Files:", bucket.keys.map { |k| k.name }
  puts "ruby/:",
     bucket.keys(:prefix => "ruby/").map { |k| k.name }




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
Files:

               Files:
               presentations/upload.rb
               ruby/upload.rb
               ruby/:
               ruby/upload.rb




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
Files:

               Files:
               presentations/upload.rb
               ruby/upload.rb
               ruby/:
               ruby/upload.rb




Uploading/Listing Files
 Files are “objects” stored under “keys” on S3
Downloading a File
 You can stream files to and from S3
#!/usr/bin/env ruby -KU
 $VERBOSE = nil

 require "rubygems"
 require "aws" # sudo gem install aws

 s3 = Aws::S3Interface.new(
   "ACCESS_KEY_ID",
   "SECRET_ACCESS_KEY",
   :logger => Logger.new("/dev/null")
 )

 open("downloaded.rb", "w") do |f|
  s3.get("graysoftinc", "ruby/upload.rb") do |chunk|
   f << chunk
  end
 end




Downloading a File
 You can stream files to and from S3
#!/usr/bin/env ruby -KU
 $VERBOSE = nil

 require "rubygems"
 require "aws" # sudo gem install aws

 s3 = Aws::S3Interface.new(
   "ACCESS_KEY_ID",
   "SECRET_ACCESS_KEY",
   :logger => Logger.new("/dev/null")
 )

 open("downloaded.rb", "w") do |f|
  s3.get("graysoftinc", "ruby/upload.rb") do |chunk|
   f << chunk
  end
 end




Downloading a File
 You can stream files to and from S3
#!/usr/bin/env ruby -KU
 $VERBOSE = nil

 require "rubygems"
 require "aws" # sudo gem install aws

 s3 = Aws::S3Interface.new(
   "ACCESS_KEY_ID",
   "SECRET_ACCESS_KEY",
   :logger => Logger.new("/dev/null")
 )

 open("downloaded.rb", "w") do |f|
  s3.get("graysoftinc", "ruby/upload.rb") do |chunk|
   f << chunk
  end
 end




Downloading a File
 You can stream files to and from S3
The Details
The Details
The Good
The Good
Scalable: effectively
“unlimited” storage
The Good
Scalable: effectively
“unlimited” storage
Reliable: 99.9%
guaranteed uptime and
very redundant
The Good
Scalable: effectively
“unlimited” storage
Reliable: 99.9%
guaranteed uptime and
very redundant
Inexpensive: rates for
GB in cents
The Good
Scalable: effectively
“unlimited” storage
Reliable: 99.9%
guaranteed uptime and
very redundant
Inexpensive: rates for
GB in cents
Universal: everything
supports it
Transmit has FTP-like S3
Support in libraries, command-line tools, and programs
Transmit has FTP-like S3
Support in libraries, command-line tools, and programs
Transmit has FTP-like S3
Support in libraries, command-line tools, and programs
Transmit has FTP-like S3
Support in libraries, command-line tools, and programs
Transmit has FTP-like S3
Support in libraries, command-line tools, and programs
The Not-So-Good
The Not-So-Good
Not quite worldly:
servers in the U.S.,
California, and Ireland
The Not-So-Good
Not quite worldly:
servers in the U.S.,
California, and Ireland
Simple, but not quite
curl/wget simple
The Not-So-Good
Not quite worldly:
servers in the U.S.,
California, and Ireland
Simple, but not quite
curl/wget simple
The service is
“eventually consistent”
Eventual Consistency
All machines will “eventually” see the same data in S3
Now




    Eventual Consistency
All machines will “eventually” see the same data in S3
Eventually

                      Later
                                 Now




    Eventual Consistency
All machines will “eventually” see the same data in S3
Eventually

                      Later
                                 Now




    Eventual Consistency
All machines will “eventually” see the same data in S3

Mais conteúdo relacionado

Mais procurados

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
Bùi Quang Lâm
 

Mais procurados (20)

(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best Practices(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best Practices
 
Amazon S3 Masterclass
Amazon S3 MasterclassAmazon S3 Masterclass
Amazon S3 Masterclass
 
AWS Simple Storage Service (s3)
AWS Simple Storage Service (s3) AWS Simple Storage Service (s3)
AWS Simple Storage Service (s3)
 
Intro to AWS Lambda
Intro to AWS Lambda Intro to AWS Lambda
Intro to AWS Lambda
 
ABCs of AWS: S3
ABCs of AWS: S3ABCs of AWS: S3
ABCs of AWS: S3
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storage
 
AWS Storage - S3 Fundamentals
AWS Storage - S3 FundamentalsAWS Storage - S3 Fundamentals
AWS Storage - S3 Fundamentals
 
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
 
Intro to Amazon S3
Intro to Amazon S3Intro to Amazon S3
Intro to Amazon S3
 
Deep Dive - Amazon Elastic MapReduce (EMR)
Deep Dive - Amazon Elastic MapReduce (EMR)Deep Dive - Amazon Elastic MapReduce (EMR)
Deep Dive - Amazon Elastic MapReduce (EMR)
 
AWS - Lambda Fundamentals
AWS - Lambda FundamentalsAWS - Lambda Fundamentals
AWS - Lambda Fundamentals
 
AWS ELB
AWS ELBAWS ELB
AWS ELB
 
Introduction to AWS Glue
Introduction to AWS Glue Introduction to AWS Glue
Introduction to AWS Glue
 
Azure storage
Azure storageAzure storage
Azure storage
 
AWS S3 Tutorial For Beginners | Edureka
AWS S3 Tutorial For Beginners | EdurekaAWS S3 Tutorial For Beginners | Edureka
AWS S3 Tutorial For Beginners | Edureka
 
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Elastic  Load Balancing Deep Dive - AWS Online Tech TalkElastic  Load Balancing Deep Dive - AWS Online Tech Talk
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
 
Deep Dive into AWS SAM
Deep Dive into AWS SAMDeep Dive into AWS SAM
Deep Dive into AWS SAM
 
What is AWS Glue
What is AWS GlueWhat is AWS Glue
What is AWS Glue
 
Auto Scaling Groups
Auto Scaling GroupsAuto Scaling Groups
Auto Scaling Groups
 
Scaling your analytics with Amazon EMR
Scaling your analytics with Amazon EMRScaling your analytics with Amazon EMR
Scaling your analytics with Amazon EMR
 

Semelhante a Amazon's Simple Storage Service (S3)

Amazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend FrameworkAmazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend Framework
Shahar Evron
 
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜 AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
崇之 清水
 
On secure application of PHP wrappers
On secure application  of PHP wrappersOn secure application  of PHP wrappers
On secure application of PHP wrappers
Positive Hack Days
 

Semelhante a Amazon's Simple Storage Service (S3) (20)

Mastering the AWS SDK for PHP (TLS306) | AWS re:Invent 2013
Mastering the AWS SDK for PHP (TLS306) | AWS re:Invent 2013Mastering the AWS SDK for PHP (TLS306) | AWS re:Invent 2013
Mastering the AWS SDK for PHP (TLS306) | AWS re:Invent 2013
 
AWS for Startups, London - Programming AWS
AWS for Startups, London - Programming AWSAWS for Startups, London - Programming AWS
AWS for Startups, London - Programming AWS
 
Terraform, Ansible, or pure CloudFormation?
Terraform, Ansible, or pure CloudFormation?Terraform, Ansible, or pure CloudFormation?
Terraform, Ansible, or pure CloudFormation?
 
Workshop: Building Your First Big Data Application on AWS
Workshop: Building Your First Big Data Application on AWSWorkshop: Building Your First Big Data Application on AWS
Workshop: Building Your First Big Data Application on AWS
 
API Design
API DesignAPI Design
API Design
 
DevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursDevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office Hours
 
Amazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend FrameworkAmazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend Framework
 
solving little problems
solving little problemssolving little problems
solving little problems
 
PHP API
PHP APIPHP API
PHP API
 
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
Serverless cat detector   workshop - cloudyna 2017 (16.12.2017)Serverless cat detector   workshop - cloudyna 2017 (16.12.2017)
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
 
(DEV301) Automating AWS with the AWS CLI
(DEV301) Automating AWS with the AWS CLI(DEV301) Automating AWS with the AWS CLI
(DEV301) Automating AWS with the AWS CLI
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
 
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜 AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
 
Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)
 
(DVO304) AWS CloudFormation Best Practices
(DVO304) AWS CloudFormation Best Practices(DVO304) AWS CloudFormation Best Practices
(DVO304) AWS CloudFormation Best Practices
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
 
Terraform, Ansible or pure CloudFormation
Terraform, Ansible or pure CloudFormationTerraform, Ansible or pure CloudFormation
Terraform, Ansible or pure CloudFormation
 
On secure application of PHP wrappers
On secure application  of PHP wrappersOn secure application  of PHP wrappers
On secure application of PHP wrappers
 
AWS Lambda for Data Science @Celerative
AWS Lambda for Data Science @CelerativeAWS Lambda for Data Science @Celerative
AWS Lambda for Data Science @Celerative
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWS
 

Mais de James Gray

A Dickens of A Keynote
A Dickens of A KeynoteA Dickens of A Keynote
A Dickens of A Keynote
James Gray
 

Mais de James Gray (17)

A Dickens of A Keynote
A Dickens of A KeynoteA Dickens of A Keynote
A Dickens of A Keynote
 
I Doubt That!
I Doubt That!I Doubt That!
I Doubt That!
 
Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
Counting on God
Counting on GodCounting on God
Counting on God
 
In the Back of Your Mind
In the Back of Your MindIn the Back of Your Mind
In the Back of Your Mind
 
Unblocked
UnblockedUnblocked
Unblocked
 
Module Magic
Module MagicModule Magic
Module Magic
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Test Coverage in Rails
Test Coverage in RailsTest Coverage in Rails
Test Coverage in Rails
 
Rails Routing And Rendering
Rails Routing And RenderingRails Routing And Rendering
Rails Routing And Rendering
 
Sending Email with Rails
Sending Email with RailsSending Email with Rails
Sending Email with Rails
 
Associations in Rails
Associations in RailsAssociations in Rails
Associations in Rails
 
DRYing Up Rails Views and Controllers
DRYing Up Rails Views and ControllersDRYing Up Rails Views and Controllers
DRYing Up Rails Views and Controllers
 
Building a Rails Interface
Building a Rails InterfaceBuilding a Rails Interface
Building a Rails Interface
 
Rails Model Basics
Rails Model BasicsRails Model Basics
Rails Model Basics
 
Ruby
RubyRuby
Ruby
 
Wed Development on Rails
Wed Development on RailsWed Development on Rails
Wed Development on Rails
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

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 Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Amazon's Simple Storage Service (S3)

  • 1. AMAZON SIMPLE STORAGE SERVICE (S3) The Infinite Hard Drive in the Cloud
  • 3. What is S3? A RESTful (or SOAP) data storage API
  • 4. What is S3? A RESTful (or SOAP) data storage API Supports HTTP and BitTorrent protocols Control headers to serve content straight from S3
  • 5. What is S3? A RESTful (or SOAP) data storage API Supports HTTP and BitTorrent protocols Control headers to serve content straight from S3 Full access control per file or user Preauthorize direct uploads by users
  • 6. What is S3? A RESTful (or SOAP) data storage API Supports HTTP and BitTorrent protocols Control headers to serve content straight from S3 Full access control per file or user Preauthorize direct uploads by users Billed by capacity stored and transfer rates
  • 11. Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 12. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') puts print "Creating the bucket graysoftinc... " s3.bucket("graysoftinc", :create, "private") puts "Done." puts puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 13. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') puts print "Creating the bucket graysoftinc... " s3.bucket("graysoftinc", :create, "private") puts "Done." puts puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 14. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') puts print "Creating the bucket graysoftinc... " s3.bucket("graysoftinc", :create, "private") puts "Done." puts puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 15. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') puts print "Creating the bucket graysoftinc... " s3.bucket("graysoftinc", :create, "private") puts "Done." puts puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 16. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') puts print "Creating the bucket graysoftinc... " s3.bucket("graysoftinc", :create, "private") puts "Done." puts puts "Your buckets: " + s3.buckets.map { |b| b.name }.join(', ') Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 17. Your buckets: Creating the bucket graysoftinc... Done. Your buckets: graysoftinc Creating/Listing Buckets Globally unique “buckets” hold files on S3
  • 18. Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 19. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 20. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 21. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 22. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 23. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 24. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) bucket = s3.bucket("graysoftinc") puts "Files:", bucket.keys.map { |k| k.name } puts open(__FILE__) do |f| bucket.put("presentations/upload.rb", f) end bucket.copy_key("presentations/upload.rb", "ruby/upload.rb") puts "Files:", bucket.keys.map { |k| k.name } puts "ruby/:", bucket.keys(:prefix => "ruby/").map { |k| k.name } Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 25. Files: Files: presentations/upload.rb ruby/upload.rb ruby/: ruby/upload.rb Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 26. Files: Files: presentations/upload.rb ruby/upload.rb ruby/: ruby/upload.rb Uploading/Listing Files Files are “objects” stored under “keys” on S3
  • 27. Downloading a File You can stream files to and from S3
  • 28. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3Interface.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) open("downloaded.rb", "w") do |f| s3.get("graysoftinc", "ruby/upload.rb") do |chunk| f << chunk end end Downloading a File You can stream files to and from S3
  • 29. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3Interface.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) open("downloaded.rb", "w") do |f| s3.get("graysoftinc", "ruby/upload.rb") do |chunk| f << chunk end end Downloading a File You can stream files to and from S3
  • 30. #!/usr/bin/env ruby -KU $VERBOSE = nil require "rubygems" require "aws" # sudo gem install aws s3 = Aws::S3Interface.new( "ACCESS_KEY_ID", "SECRET_ACCESS_KEY", :logger => Logger.new("/dev/null") ) open("downloaded.rb", "w") do |f| s3.get("graysoftinc", "ruby/upload.rb") do |chunk| f << chunk end end Downloading a File You can stream files to and from S3
  • 35. The Good Scalable: effectively “unlimited” storage Reliable: 99.9% guaranteed uptime and very redundant
  • 36. The Good Scalable: effectively “unlimited” storage Reliable: 99.9% guaranteed uptime and very redundant Inexpensive: rates for GB in cents
  • 37. The Good Scalable: effectively “unlimited” storage Reliable: 99.9% guaranteed uptime and very redundant Inexpensive: rates for GB in cents Universal: everything supports it
  • 38. Transmit has FTP-like S3 Support in libraries, command-line tools, and programs
  • 39. Transmit has FTP-like S3 Support in libraries, command-line tools, and programs
  • 40. Transmit has FTP-like S3 Support in libraries, command-line tools, and programs
  • 41. Transmit has FTP-like S3 Support in libraries, command-line tools, and programs
  • 42. Transmit has FTP-like S3 Support in libraries, command-line tools, and programs
  • 44. The Not-So-Good Not quite worldly: servers in the U.S., California, and Ireland
  • 45. The Not-So-Good Not quite worldly: servers in the U.S., California, and Ireland Simple, but not quite curl/wget simple
  • 46. The Not-So-Good Not quite worldly: servers in the U.S., California, and Ireland Simple, but not quite curl/wget simple The service is “eventually consistent”
  • 47. Eventual Consistency All machines will “eventually” see the same data in S3
  • 48. Now Eventual Consistency All machines will “eventually” see the same data in S3
  • 49. Eventually Later Now Eventual Consistency All machines will “eventually” see the same data in S3
  • 50. Eventually Later Now Eventual Consistency All machines will “eventually” see the same data in S3

Notas do Editor