Skip to content

mabels/eimer-kette

Repository files navigation

eimer-kette

A high performance s3 listobjectv2 implementation

Docker Container found here:

docker pull ghcr.io/mabels/eimer-kette

Example usages:

Export all s3 object names to an SQLite file (file.sql):

./eimer-kette \
    --bucket YOUR_BUCKET_NAME \
    --format sqlite \
    --sqliteCleanDb \
    --strategy letter \
    --delimiter ""

Note: The strategy letter should be used if the bucket has no subdirectories. The default strategy is delimiter with "/" as default.

Use the generated file.sql and simulate S3 Bucket "ObjectCreated:Put" events by writing messages to SQS:

./eimer-kette \
    --bucket YOUR_BUCKET_NAME \ 
    --frontend sqlite  \
    --outputSqsUrl https://YOUR_QUEUE_URL \
    --outputSqsMaxMessageSize 20000 \
    --format sqs

Alternatively, you can export all object names directly to your SQS without the need for an intermediate persistence step:

./eimer-kette \
    --bucket YOUR_BUCKET_NAME  \ 
    --outputSqsUrl https://YOUR_QUEUE_URL  \
    --outputSqsMaxMessageSize 20000 \
    --format sqs

If you only want to count all objects in an S3 bucket:

./eimer-kette --bucket YOUR_BUCKET_NAME > /dev/null

The output is something like:

Now=2021-12-12T18:01:21Z Total=21176538/0  ListObjectsV2=942624/0/0/0.026   ListObjectsV2Input=942624/0/0   NewFromConfig=16/0/0/0.000

Delete objects from an S3 Bucket:

./eimer-kette 
    --bucket YOUR_BUCKET_NAME  \
    --format s3delete \
    --outputS3DeleteWorkers 3

List all possible parameters:

./eimer-kette --help