Skip to content
This repository has been archived by the owner on Aug 1, 2023. It is now read-only.

Create Container Comparison

Samuel A. Falvo II edited this page Sep 18, 2013 · 8 revisions

Creating a Container with OpenStack

Creating a container requires at least two, and at most three, things:

  • URL (I list this here because it secretly implies a region to create the bucket in)
  • Account ID (query parameter; apparently a tenant ID? OpenStack docs are ambiguous here)
  • Container name (query parameter)
  • Metadata (optional, encoded in headers)

Note that ACL or permissions-related data cannot be provided through this call.

Returns 201 if successful.

Creating a Container with S3

  • Bucket name (must be DNS compatible; passed as a header)
  • Authorization token (header)
  • Bucket Region (passed inside an XML element; constrains where the bucket is created)
  • Access privileges (header; optional)

Note that the bucket region in S3 has no corresponding counterpart in OpenStack's request; this is because the URL you hit in OpenStack to create the container is already tied to a specific region.

Returns 200 if successful, along with some metadata on the bucket created.

Windows Azure

See http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/#create-container for an interesting work-flow. You need to get a "reference" to a container, even if it doesn't exist. Then, you create it if it doesn't exist with another call. This document doesn't illustrate wire-level transactions, though, so this might be a client-side abstraction.

See http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx .

  • Account name (must be DNS compatible, as it's part of the request URL)
  • Container name (lower-case letters ONLY; part of the URL)
  • Timeout (optional; query parameter)
  • Authorization (required; header)
  • Date or x-ms-date (required; header)
  • x-ms-version (required; header)
  • Metadata (optional; header)
  • x-ms-client-request-id (optional; header; useful for log analysis in support of request tracing)

GAE

See https://developers.google.com/storage/docs/json_api/v1/buckets/insert

Too many to list! Good grief!

  • name (of bucket)
  • ACL
  • CORS
  • Lifecycle
  • Location (region, I presume)
  • Logging
  • StorageClass
  • Versioning
  • Website