diff --git a/moto/s3/responses.py b/moto/s3/responses.py
index a7fb82210..e4259b57f 100644
--- a/moto/s3/responses.py
+++ b/moto/s3/responses.py
@@ -1774,7 +1774,9 @@ S3_BUCKET_GET_RESPONSE = """
{{ prefix }}
{% endif %}
{{ max_keys }}
- {{ delimiter }}
+ {% if delimiter %}
+ {{ delimiter }}
+ {% endif %}
{{ is_truncated }}
{% if next_marker %}
{{ next_marker }}
diff --git a/tests/test_s3/test_s3.py b/tests/test_s3/test_s3.py
index 8cc9a740c..b213a9a72 100644
--- a/tests/test_s3/test_s3.py
+++ b/tests/test_s3/test_s3.py
@@ -1709,6 +1709,17 @@ def test_website_redirect_location():
resp["WebsiteRedirectLocation"].should.equal(url)
+@mock_s3
+def test_delimiter_optional_in_response():
+ s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
+ s3.create_bucket(Bucket="mybucket")
+ s3.put_object(Bucket="mybucket", Key="one", Body=b"1")
+ resp = s3.list_objects(Bucket="mybucket", MaxKeys=1)
+ assert resp.get("Delimiter") is None
+ resp = s3.list_objects(Bucket="mybucket", MaxKeys=1, Delimiter="/")
+ assert resp.get("Delimiter") == "/"
+
+
@mock_s3
def test_boto3_list_objects_truncated_response():
s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
@@ -1725,7 +1736,7 @@ def test_boto3_list_objects_truncated_response():
assert resp["MaxKeys"] == 1
assert resp["IsTruncated"] == True
assert resp.get("Prefix") is None
- assert resp["Delimiter"] == "None"
+ assert resp.get("Delimiter") is None
assert "NextMarker" in resp
next_marker = resp["NextMarker"]
@@ -1738,7 +1749,7 @@ def test_boto3_list_objects_truncated_response():
assert resp["MaxKeys"] == 1
assert resp["IsTruncated"] == True
assert resp.get("Prefix") is None
- assert resp["Delimiter"] == "None"
+ assert resp.get("Delimiter") is None
assert "NextMarker" in resp
next_marker = resp["NextMarker"]
@@ -1751,7 +1762,7 @@ def test_boto3_list_objects_truncated_response():
assert resp["MaxKeys"] == 1
assert resp["IsTruncated"] == False
assert resp.get("Prefix") is None
- assert resp["Delimiter"] == "None"
+ assert resp.get("Delimiter") is None
assert "NextMarker" not in resp