Skip to content

Commit

Permalink
Reports content-length of streaming data 馃搻
Browse files Browse the repository at this point in the history
This avoids warnings by the AWS client software.

#209
SIRI-721

Signed-off-by: Jakob Vogel <jvo@scireum.de>
  • Loading branch information
jakobvogel committed Feb 23, 2023
1 parent 7d62710 commit 289a46a
Showing 1 changed file with 25 additions and 70 deletions.
95 changes: 25 additions & 70 deletions src/test/java/BaseAWSSpec.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import com.amazonaws.HttpMethod
import com.amazonaws.services.s3.AmazonS3Client
import com.amazonaws.services.s3.Headers
import com.amazonaws.services.s3.model.AmazonS3Exception
import com.amazonaws.services.s3.model.DeleteObjectsRequest
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest
Expand Down Expand Up @@ -126,11 +127,7 @@ abstract class BaseAWSSpec extends BaseSpecification {
client.createBucket(bucketName)
}
and:
client.putObject(
bucketName,
key,
new ByteArrayInputStream("Test".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key, "Test")
def content = new String(
ByteStreams.toByteArray(client.getObject(bucketName, key).getObjectContent()),
Charsets.UTF_8)
Expand Down Expand Up @@ -159,16 +156,8 @@ abstract class BaseAWSSpec extends BaseSpecification {
}
client.createBucket(bucketName)
and:
client.putObject(
bucketName,
key1,
new ByteArrayInputStream("Eins".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key2,
new ByteArrayInputStream("Zwei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key1, "Eins")
putObjectWithContent(bucketName, key2, "Zwei")
then:
def listing = client.listObjects(bucketName)
def summaries = listing.getObjectSummaries()
Expand All @@ -191,21 +180,9 @@ abstract class BaseAWSSpec extends BaseSpecification {
}
client.createBucket(bucketName)
and:
client.putObject(
bucketName,
key1,
new ByteArrayInputStream("Eins".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key2,
new ByteArrayInputStream("Zwei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key3,
new ByteArrayInputStream("Drei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key1, "Eins")
putObjectWithContent(bucketName, key2, "Zwei")
putObjectWithContent(bucketName, key3, "Drei")
then:
def listing = client.listObjects(bucketName, DEFAULT_KEY + '/')
def summaries = listing.getObjectSummaries()
Expand All @@ -224,11 +201,7 @@ abstract class BaseAWSSpec extends BaseSpecification {
client.createBucket(bucketName)
}
and:
client.putObject(
bucketName,
key,
new ByteArrayInputStream("Test".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key, "Test")
client.deleteBucket(bucketName)
client.getObject(bucketName, key)
then:
Expand Down Expand Up @@ -340,11 +313,7 @@ abstract class BaseAWSSpec extends BaseSpecification {
client.createBucket(bucketName)
}
and:
client.putObject(
bucketName,
key,
new ByteArrayInputStream("Test".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key, "Test")
def content = new String(
ByteStreams.toByteArray(client.getObject(bucketName, key).getObjectContent()),
Charsets.UTF_8)
Expand Down Expand Up @@ -374,21 +343,9 @@ abstract class BaseAWSSpec extends BaseSpecification {
def key3 = DEFAULT_KEY + "/Drei"
def client = getClient()
when:
client.putObject(
bucketName,
key1,
new ByteArrayInputStream("Eins".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key2,
new ByteArrayInputStream("Zwei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key3,
new ByteArrayInputStream("Drei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key1, "Eins")
putObjectWithContent(bucketName, key2, "Zwei")
putObjectWithContent(bucketName, key3, "Drei")
def result = client.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(key1, key2))
then:
result.getDeletedObjects().size() == 2
Expand All @@ -411,21 +368,9 @@ abstract class BaseAWSSpec extends BaseSpecification {
def key3 = DEFAULT_KEY + "/Drei"
def client = getClient()
when:
client.putObject(
bucketName,
key1,
new ByteArrayInputStream("Eins".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key2,
new ByteArrayInputStream("Zwei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
client.putObject(
bucketName,
key3,
new ByteArrayInputStream("Drei".getBytes(Charsets.UTF_8)),
new ObjectMetadata())
putObjectWithContent(bucketName, key1, "Eins")
putObjectWithContent(bucketName, key2, "Zwei")
putObjectWithContent(bucketName, key3, "Drei")
def result = client.listObjectsV2(new ListObjectsV2Request().withBucketName(bucketName).withPrefix(key1))
then:
result.getKeyCount() == 2
Expand All @@ -437,4 +382,14 @@ abstract class BaseAWSSpec extends BaseSpecification {
client.deleteObject(bucketName, key2)
client.deleteObject(bucketName, key3)
}

private void putObjectWithContent(String bucketName, String key, String content) {
def client = getClient()
def data = content.getBytes(Charsets.UTF_8)

def metadata = new ObjectMetadata()
metadata.setHeader(Headers.CONTENT_LENGTH, new Long(data.length))

client.putObject(bucketName, key, new ByteArrayInputStream(data), metadata)
}
}

0 comments on commit 289a46a

Please sign in to comment.