# S3ObjectStorageMode

How Lambda manages the storage of your code package.

- Source: [`aws-lambda/lib/code.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-lambda/lib/code.ts#L17)
- Type last changed: v2.271.0 · 25 Sep 2026

## Example

```ts
import * as s3 from 'aws-cdk-lib/aws-s3';

declare const bucket: s3.IBucket;
declare const objectVersion: string;

new lambda.Function(this, 'MyFunction', {
  functionName: 'my-function',
  runtime: lambda.Runtime.NODEJS_LATEST,
  handler: 'index.handler',
  code: lambda.Code.fromBucketV2(bucket, 'my-function.zip', {
    objectVersion,
    s3ObjectStorageMode: lambda.S3ObjectStorageMode.REFERENCE,
  }),
});

new lambda.LayerVersion(this, 'MyLayer', {
  layerVersionName: 'my-layer',
  code: lambda.Code.fromBucketV2(bucket, 'my-layer.zip', {
    objectVersion,
    s3ObjectStorageMode: lambda.S3ObjectStorageMode.REFERENCE,
  }),
});
```

## Members

| Member | Description |
| --- | --- |
| `COPY` | Lambda copies the deployment package from your S3 bucket into Lambda-managed storage. |
| `REFERENCE` | Lambda references your code directly from your S3 bucket. |

## Referenced by

- [`BucketOptions`](/v2/docs/aws-cdk-lib.aws_lambda.BucketOptions).s3ObjectStorageMode
- [`CodeConfig`](/v2/docs/aws-cdk-lib.aws_lambda.CodeConfig).s3ObjectStorageMode
