AWS CDK custom resource that handles large files deployment to S3 bucket.
Project description
B.CfnS3LargeDeployment
b-cfn-s3-large-deployment - AWS CDK custom resource that handles large files deployment to S3 bucket.
Description
This custom resource deploys local files or S3 bucket objects to a destination bucket retaining their file-system hierarchy.
Two types of deployment sources are available:
BucketDeploymentSource- uses another S3 bucket object(-s) as source for the deployment to a destination bucket. Only files up to 5TB are supported due to S3 bucket limitations;AssetDeploymentSource- usesaws-cdk.aws-s3-assetslib to deploy local files as .zip files to assets bucket from which extracted contents are moved to the destination bucket. Asset files more than 2GB in size are not supported.
See "Known limits" sections below for more information on this resource limitations.
This resource implementation is based on GitHub pull-request https://github.com/aws/aws-cdk/pull/15220.
Remarks
Biomapas aims to modernise life-science industry by sharing its IT knowledge with other companies and the community.
Related technology
- Python 3.8
- Amazon Web Services (AWS)
Assumptions
The project assumes that the person working with it have basic knowledge in python programming.
Useful sources
See code documentation for any additional sources and references. Also see aws-cdk.s3-deployment library for more
information as this implementation is based on work done there.
Install
Use the package manager pip to install this package. This project is not in the PyPi repository yet. Install directly from source or PyPI.
pip install .
Or
pip install b-cfn-s3-large-deployment
Usage & Examples
from aws_cdk.core import App, Stack, Construct
from aws_cdk.aws_s3 import Bucket
from b_cfn_s3_large_deployment.resource import S3LargeDeploymentResource
from b_cfn_s3_large_deployment.deployment_props import DeploymentProps
from b_cfn_s3_large_deployment.deployment_source import AssetDeploymentSource, BucketDeploymentSource
class ExampleStack(Stack):
def __init__(self, scope: Construct):
super().__init__(...)
S3LargeDeploymentResource(
scope=self,
name='ExampleLargeDeployment',
sources=[
AssetDeploymentSource(path='/path/to/your/local/directory'),
AssetDeploymentSource(path='/path/to/your/local/zip/file.zip'),
BucketDeploymentSource(
bucket=...,
zip_object_key='your-source-bucket-object-key'
),
...
],
destination_bucket=Bucket(...),
props=DeploymentProps(...)
)
...
app = App()
ExampleStack(app, 'ExampleStack')
app.synth()
Known limits
aws_cdk.aws_s3_assets.Assetsupports up to 2GB/asset (limited by NodeJS implementation).- S3 bucket supports up to 5TB objects.
Testing
No throughout testing is yet implemented - only a single integration test, checking the success of cdk synth command.
Contribution
Found a bug? Want to add or suggest a new feature? Contributions of any kind are gladly welcome. Contact your direct supervisor, create a pull-request or an issue in Jira platform.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file b-cfn-s3-large-deployment-1.1.0.tar.gz.
File metadata
- Download URL: b-cfn-s3-large-deployment-1.1.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93b7e5be7c66bf128fb1649d8b8e588908a1412ec870105ec57b144d0a003b73
|
|
| MD5 |
7aaced5d797771ccbea22464a4faf7bb
|
|
| BLAKE2b-256 |
3f9ca85a738032592b9f7da6b0f615957bdd36195d83f8faded48874f0477ac5
|
File details
Details for the file b_cfn_s3_large_deployment-1.1.0-py3-none-any.whl.
File metadata
- Download URL: b_cfn_s3_large_deployment-1.1.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fe888eedec28f7024b5a5bedeab8dcb34009fa80f7a667d7890b445b1b7ced0
|
|
| MD5 |
9a0d31ae40eb9f58480affe4912a6037
|
|
| BLAKE2b-256 |
fa6bc906487af5ba2f87a3a74997b92e28de15caa3ba629503650e95426aad49
|