From 47c9abdcbf5e10ce0757d3a5fd34fa1cb74dd7b0 Mon Sep 17 00:00:00 2001 From: Nick den Engelsman Date: Wed, 19 Jul 2017 17:31:25 +0200 Subject: [PATCH] Add startAfter support --- README.md | 10 ++++++++++ lambda_functions/list_bucket.py | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 35794fd..d337bde 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,16 @@ Optionally sync based on a prefix: } ``` +Optionally sync after a specific key: + +```json +{ + "source": "...", + "destination": "...", + "startAfter": "images/1000" +} +``` + ## How to uninstall This assumes that you're still working from the sync-buckets-state-machine that you installed into in the steps above. diff --git a/lambda_functions/list_bucket.py b/lambda_functions/list_bucket.py index 6603cc4..4b62343 100644 --- a/lambda_functions/list_bucket.py +++ b/lambda_functions/list_bucket.py @@ -38,6 +38,7 @@ SAFETY_MARGIN = 10.0 # Percent MAX_RESULT_LENGTH = int(MAX_DATA_SIZE * (1.0 - (SAFETY_MARGIN / 100.0))) PREFIX = '' # Copy objects based on a provided prefix e.g. '/images/' +START_AFTER = '' # List objects after a specific key e.g. '/images/1000' # Globals @@ -63,11 +64,13 @@ def handler(event, context): token = event.get('listResult', {}).get('token', '') max_keys = event.get('maxKeys', MAX_KEYS) prefix = event.get('prefix', PREFIX) + start_after = event.get('startAfter', START_AFTER) args = { 'Bucket': bucket, 'MaxKeys': max_keys, - 'Prefix': prefix + 'Prefix': prefix, + 'StartAfter': start_after } result = {}