tracker issue : CF-3915984

select a category, or use search below
(searches all categories and all time range)
Title:

[ANeff] ER for: disallow non-compliant DNS bucket naming in Amazon S3's US Standard region

| View in Tracker

Status/Resolution/Reason: To Fix//

Reporter/Name(from Bugbase): Aaron Neff / Aaron Neff (Aaron Neff)

Created: 01/05/2015

Components: File Management, VFS-S3

Versions: 11.0

Failure Type: Enhancement Request

Found In Build/Fixed In Build: CF11_Final /

Priority/Frequency: Trivial / Unknown

Locale/System: English / Win All

Vote Count: 0

Please refer to the following sentences in http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html (dated 2006-03-01):

- "While the US Standard region currently allows non-compliant DNS bucket naming, we are moving to the same DNS-compliant bucket naming convention for the US Standard region in the coming months."
- "If you try to access this bucket by using a virtual-hosted–style request (http://MyAWSBucket.s3.amazonaws.com/yourobject), the URL resolves to the bucket myawsbucket and not the bucket MyAWSBucket. In response, Amazon S3 will return a "bucket not found" error."

Issue: Currently, directoryCreate() allows S3 bucket names to have underscores and UPPERCASE characters in the US Standard region. In addition to virtual-hosted–style requests returning "bucket not found", directoryCreate() is unable to re-create these buckets if they were ever deleted via the S3 Management Console.

Repro:

1) Run this (substitute "MyAWSBucket" and "my_aws_bucket" for any bucket name having UPPERCASE and underscore characters):

<cfscript>
  directoryCreate("s3://MyAWSBucket");
  directoryCreate("s3://my_aws_bucket");
</cfscript>

2) In S3 Management Console, see both buckets were created (good)
3) Run this:

<cfscript>
  directoryDelete("s3://MyAWSBucket");
  directoryDelete("s3://my_aws_bucket");
</cfscript>

4) In S3 Management Console, see both buckets were deleted (good)
5) Run this:

<cfscript>
  directoryCreate("s3://MyAWSBucket");
  directoryCreate("s3://my_aws_bucket");
</cfscript>

6) In S3 Management Console, see both buckets were re-created (good)
7) In S3 Management Console, delete both buckets
8) Run this:

<cfscript>
  directoryCreate("s3://MyAWSBucket");
  directoryCreate("s3://my_aws_bucket");
</cfscript>

See exceptions:

-----------
The specified directory s3://MyAWSBucket/ could not be created.
The most likely cause of this error is that s3://MyAWSBucket/ already exists on your file system.
-----------
-----------
The specified directory s3://my_aws_bucket/ could not be created.
The most likely cause of this error is that s3://my_aws_bucket/ already exists on your file system.
-----------

9) Run this:

<cfscript>
  writeDump(directoryExists("s3://MyAWSBucket"));
  writeDump(directoryExists("s3://my_aws_bucket"));
</cfscript>

10) See both return "YES" (bad)


This ER is to do one of the following:
1) Disallow non-compliant DNS bucket naming in the US Standard region (i.e. disallow the underscore and UPPERCASE characters in directoryCreate("s3://.."))
-or-
2) Properly support it by fixing directoryCreate() (so that the above exceptions are no longer thrown) and by fixing directoryExists() (so that it returns "NO")

Adobe, can you please add a publicly-visible comment on this ticket stating which route will be taken? I'd vote for #1, since Amazon S3 will eventually do the same.

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	3915984

Reason:	BugVerified

External Customer Info:
External Company:  
External Customer Name: itisdesign
External Customer Email:

Attachments:

Comments:

Related URL: http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
Comment by External U.
9149 | January 05, 2015 04:18:13 AM GMT