Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aws-s3: Unable to use Bucket.fromBucketName on legacy s3 bucket with Uppcase Letters in the name #31731

Open
1 task
gregmagdits opened this issue Oct 11, 2024 · 2 comments
Assignees
Labels
@aws-cdk/aws-s3 Related to Amazon S3 bug This issue is a bug. p2 response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 7 days.

Comments

@gregmagdits
Copy link

Describe the bug

I'm attempting to reference an s3 bucket in my cdk code that was created in 2013 outside of cdk. The bucket has Capital letters in its name, which was legal for buckets before March 1, 2018 (new buckets can't have Capital letters or underscores in their names). I've tried referencing the bucket with both Bucket.fromBucketName and Bucket.fromBucketAttributes, but both throw this error:
(note that I've slightly changed the name of the actual bucket for privacy)

Error: Invalid S3 bucket name (value: ABCD_Central_1)
Bucket name must only contain lowercase characters and the symbols, period (.), underscore (_), and dash (-) (offset: 0)
Bucket name must start and end with a lowercase character or number (offset: 0)
at Function.validateBucketName (cdk-bug-test/node_modules/aws-cdk-lib/aws-s3/lib/bucket.js:1:19752)
at Function.fromBucketAttributes (cdk-bug-test/node_modules/aws-cdk-lib/aws-s3/lib/bucket.js:1:15111)
at Function.fromBucketName (cdk-bug-test/node_modules/aws-cdk-lib/aws-s3/lib/bucket.js:1:14511)

Regression Issue

  • Select this option if this issue appears to be a regression.

Last Known Working CDK Version

No response

Expected Behavior

I expect to be able to import the bucket.

Current Behavior

See error message in the description

Reproduction Steps

import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class CdkBugTestStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);
    //
    let bucket = cdk.aws_s3.Bucket.fromBucketName(this, 'test-bucket', 'ABCD_Central_1');
    // also didnt work
    //let fromBucketName = cdk.aws_s3.Bucket.fromBucketArn(this, 'test-bucket', 'arn:aws:s3:::ABCD_Central_1');
    /*let fromBucketName = cdk.aws_s3.Bucket.fromBucketAttributes(this, 'test-bucket', {
      bucketName: 'NDAR_Central_1'
    });*/
  }
}

Possible Solution

No response

Additional Information/Context

No response

CDK CLI Version

2.161.1

Framework Version

No response

Node.js Version

v20.15.0

OS

Ubuntu via (Window Subsystem for Linux)

Language

TypeScript

Language Version

No response

Other information

No response

@gregmagdits gregmagdits added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Oct 11, 2024
@github-actions github-actions bot added the @aws-cdk/aws-s3 Related to Amazon S3 label Oct 11, 2024
@gregmagdits
Copy link
Author

Note - this is almost identical to #22640

@khushail khushail added investigating This issue is being investigated and/or work is in progress to resolve the issue. and removed needs-triage This issue or PR still needs to be triaged. labels Oct 11, 2024
@khushail khushail self-assigned this Oct 11, 2024
@khushail khushail added the p2 label Oct 11, 2024
@khushail
Copy link
Contributor

@gregmagdits , thanks for reaching out and linking similar issue.

As mentioned in the linked issue and also on the S3 README-

Note that this method allows importing buckets with legacy names containing underscores (_), which was permitted for buckets created before March 1, 2018. For buckets created after this date, underscores are not allowed in the bucket name.
Screenshot 2024-10-11 at 2 15 02 PM

which means your bucket name having underscore would be acceptable but I see that your bucket name consists of Uppercase letters as well which is not accepted as per norms.

You mentioned that you renamed your bucket. In that case, you might want to retry naming with lowercase letters and see if that works.

Let me know if this is not helpful.

@khushail khushail added response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 7 days. and removed investigating This issue is being investigated and/or work is in progress to resolve the issue. labels Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@aws-cdk/aws-s3 Related to Amazon S3 bug This issue is a bug. p2 response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 7 days.
Projects
None yet
Development

No branches or pull requests

2 participants