Title:
[ANeff] ER for: disallow non-compliant DNS bucket naming in Amazon S3's US Standard region
| View in TrackerStatus/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: