Skip to content

Commit 4bd06b9

Browse files
author
AWS SDK for Go v2 automation user
committed
Merge customizations for service s3
1 parent 24bd514 commit 4bd06b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+453
-418
lines changed

Diff for: .changelog/331929f2c5c941d49d6160d2d2f34ee7.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"id": "331929f2-c5c9-41d4-9d61-60d2d2f34ee7",
3+
"type": "feature",
4+
"description": "**BREAKING CHANGE** Correct nullability of a large number of S3 structure fields. See https://github.com/aws/aws-sdk-go-v2/issues/2162.",
5+
"modules": [
6+
"feature/s3/manager",
7+
"service/s3"
8+
]
9+
}

Diff for: feature/s3/manager/download.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -436,8 +436,8 @@ func (d *downloader) setTotalBytes(resp *s3.GetObjectOutput) {
436436
if resp.ContentRange == nil {
437437
// ContentRange is nil when the full file contents is provided, and
438438
// is not chunked. Use ContentLength instead.
439-
if resp.ContentLength > 0 {
440-
d.totalBytes = resp.ContentLength
439+
if aws.ToInt64(resp.ContentLength) > 0 {
440+
d.totalBytes = aws.ToInt64(resp.ContentLength)
441441
return
442442
}
443443
} else {

Diff for: feature/s3/manager/download_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func newDownloadRangeClient(data []byte) (*downloadCaptureClient, *int, *[]strin
7070
return &s3.GetObjectOutput{
7171
Body: ioutil.NopCloser(bytes.NewReader(bodyBytes)),
7272
ContentRange: aws.String(fmt.Sprintf("bytes %d-%d/%d", start, fin-1, len(data))),
73-
ContentLength: int64(len(bodyBytes)),
73+
ContentLength: aws.Int64(int64(len(bodyBytes))),
7474
}, nil
7575
}
7676

@@ -83,7 +83,7 @@ func newDownloadNonRangeClient(data []byte) (*downloadCaptureClient, *int) {
8383
capture.GetObjectFn = func(_ context.Context, params *s3.GetObjectInput, _ ...func(*s3.Options)) (*s3.GetObjectOutput, error) {
8484
return &s3.GetObjectOutput{
8585
Body: ioutil.NopCloser(bytes.NewReader(data[:])),
86-
ContentLength: int64(len(data)),
86+
ContentLength: aws.Int64(int64(len(data))),
8787
}, nil
8888
}
8989

@@ -139,7 +139,7 @@ func newDownloadWithErrReaderClient(cases []testErrReader) (*downloadCaptureClie
139139
out := &s3.GetObjectOutput{
140140
Body: ioutil.NopCloser(&c),
141141
ContentRange: aws.String(fmt.Sprintf("bytes %d-%d/%d", 0, c.Len-1, c.Len)),
142-
ContentLength: c.Len,
142+
ContentLength: aws.Int64(c.Len),
143143
}
144144
index++
145145
return out, nil
@@ -542,7 +542,7 @@ func TestDownload_WithFailure(t *testing.T) {
542542
body := bytes.NewReader(make([]byte, manager.DefaultDownloadPartSize))
543543
out = &s3.GetObjectOutput{
544544
Body: ioutil.NopCloser(body),
545-
ContentLength: int64(body.Len()),
545+
ContentLength: aws.Int64(int64(body.Len())),
546546
ContentRange: aws.String(fmt.Sprintf("bytes %d-%d/%d", startingByte, body.Len()-1, body.Len()*10)),
547547
}
548548

Diff for: feature/s3/manager/integ_upload_test.go

+28-28
Original file line numberDiff line numberDiff line change
@@ -228,15 +228,15 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
228228
expectParts: []s3types.CompletedPart{
229229
{
230230
ETag: aws.String(singlePartETag),
231-
PartNumber: 1,
231+
PartNumber: aws.Int32(1),
232232
},
233233
{
234234
ETag: aws.String(singlePartETag),
235-
PartNumber: 2,
235+
PartNumber: aws.Int32(2),
236236
},
237237
{
238238
ETag: aws.String(multiPartTailETag),
239-
PartNumber: 3,
239+
PartNumber: aws.Int32(3),
240240
},
241241
},
242242
expectETag: multiPartETag,
@@ -248,17 +248,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
248248
{
249249
ChecksumCRC32: aws.String(singlePartCRC32),
250250
ETag: aws.String(singlePartETag),
251-
PartNumber: 1,
251+
PartNumber: aws.Int32(1),
252252
},
253253
{
254254
ChecksumCRC32: aws.String(singlePartCRC32),
255255
ETag: aws.String(singlePartETag),
256-
PartNumber: 2,
256+
PartNumber: aws.Int32(2),
257257
},
258258
{
259259
ChecksumCRC32: aws.String(multiPartTailCRC32),
260260
ETag: aws.String(multiPartTailETag),
261-
PartNumber: 3,
261+
PartNumber: aws.Int32(3),
262262
},
263263
},
264264
expectChecksumCRC32: multiPartCRC32,
@@ -271,17 +271,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
271271
{
272272
ChecksumCRC32C: aws.String(singlePartCRC32C),
273273
ETag: aws.String(singlePartETag),
274-
PartNumber: 1,
274+
PartNumber: aws.Int32(1),
275275
},
276276
{
277277
ChecksumCRC32C: aws.String(singlePartCRC32C),
278278
ETag: aws.String(singlePartETag),
279-
PartNumber: 2,
279+
PartNumber: aws.Int32(2),
280280
},
281281
{
282282
ChecksumCRC32C: aws.String(multiPartTailCRC32C),
283283
ETag: aws.String(multiPartTailETag),
284-
PartNumber: 3,
284+
PartNumber: aws.Int32(3),
285285
},
286286
},
287287
expectChecksumCRC32C: multiPartCRC32C,
@@ -294,17 +294,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
294294
{
295295
ChecksumSHA1: aws.String(singlePartSHA1),
296296
ETag: aws.String(singlePartETag),
297-
PartNumber: 1,
297+
PartNumber: aws.Int32(1),
298298
},
299299
{
300300
ChecksumSHA1: aws.String(singlePartSHA1),
301301
ETag: aws.String(singlePartETag),
302-
PartNumber: 2,
302+
PartNumber: aws.Int32(2),
303303
},
304304
{
305305
ChecksumSHA1: aws.String(multiPartTailSHA1),
306306
ETag: aws.String(multiPartTailETag),
307-
PartNumber: 3,
307+
PartNumber: aws.Int32(3),
308308
},
309309
},
310310
expectChecksumSHA1: multiPartSHA1,
@@ -317,17 +317,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
317317
{
318318
ChecksumSHA256: aws.String(singlePartSHA256),
319319
ETag: aws.String(singlePartETag),
320-
PartNumber: 1,
320+
PartNumber: aws.Int32(1),
321321
},
322322
{
323323
ChecksumSHA256: aws.String(singlePartSHA256),
324324
ETag: aws.String(singlePartETag),
325-
PartNumber: 2,
325+
PartNumber: aws.Int32(2),
326326
},
327327
{
328328
ChecksumSHA256: aws.String(multiPartTailSHA256),
329329
ETag: aws.String(multiPartTailETag),
330-
PartNumber: 3,
330+
PartNumber: aws.Int32(3),
331331
},
332332
},
333333
expectChecksumSHA256: multiPartSHA256,
@@ -343,17 +343,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
343343
{
344344
ChecksumCRC32: aws.String(singlePartCRC32),
345345
ETag: aws.String(singlePartETag),
346-
PartNumber: 1,
346+
PartNumber: aws.Int32(1),
347347
},
348348
{
349349
ChecksumCRC32: aws.String(singlePartCRC32),
350350
ETag: aws.String(singlePartETag),
351-
PartNumber: 2,
351+
PartNumber: aws.Int32(2),
352352
},
353353
{
354354
ChecksumCRC32: aws.String(multiPartTailCRC32),
355355
ETag: aws.String(multiPartTailETag),
356-
PartNumber: 3,
356+
PartNumber: aws.Int32(3),
357357
},
358358
},
359359
expectChecksumCRC32: multiPartCRC32,
@@ -367,17 +367,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
367367
{
368368
ChecksumCRC32C: aws.String(singlePartCRC32C),
369369
ETag: aws.String(singlePartETag),
370-
PartNumber: 1,
370+
PartNumber: aws.Int32(1),
371371
},
372372
{
373373
ChecksumCRC32C: aws.String(singlePartCRC32C),
374374
ETag: aws.String(singlePartETag),
375-
PartNumber: 2,
375+
PartNumber: aws.Int32(2),
376376
},
377377
{
378378
ChecksumCRC32C: aws.String(multiPartTailCRC32C),
379379
ETag: aws.String(multiPartTailETag),
380-
PartNumber: 3,
380+
PartNumber: aws.Int32(3),
381381
},
382382
},
383383
expectChecksumCRC32C: multiPartCRC32C,
@@ -391,17 +391,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
391391
{
392392
ChecksumSHA1: aws.String(singlePartSHA1),
393393
ETag: aws.String(singlePartETag),
394-
PartNumber: 1,
394+
PartNumber: aws.Int32(1),
395395
},
396396
{
397397
ChecksumSHA1: aws.String(singlePartSHA1),
398398
ETag: aws.String(singlePartETag),
399-
PartNumber: 2,
399+
PartNumber: aws.Int32(2),
400400
},
401401
{
402402
ChecksumSHA1: aws.String(multiPartTailSHA1),
403403
ETag: aws.String(multiPartTailETag),
404-
PartNumber: 3,
404+
PartNumber: aws.Int32(3),
405405
},
406406
},
407407
expectChecksumSHA1: multiPartSHA1,
@@ -415,17 +415,17 @@ func TestInteg_UploadPresetChecksum(t *testing.T) {
415415
{
416416
ChecksumSHA256: aws.String(singlePartSHA256),
417417
ETag: aws.String(singlePartETag),
418-
PartNumber: 1,
418+
PartNumber: aws.Int32(1),
419419
},
420420
{
421421
ChecksumSHA256: aws.String(singlePartSHA256),
422422
ETag: aws.String(singlePartETag),
423-
PartNumber: 2,
423+
PartNumber: aws.Int32(2),
424424
},
425425
{
426426
ChecksumSHA256: aws.String(multiPartTailSHA256),
427427
ETag: aws.String(multiPartTailETag),
428-
PartNumber: 3,
428+
PartNumber: aws.Int32(3),
429429
},
430430
},
431431
expectChecksumSHA256: multiPartSHA256,
@@ -499,7 +499,7 @@ func (b *invalidateHash) RegisterMiddleware(stack *middleware.Stack) error {
499499
func (b *invalidateHash) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
500500
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
501501
) {
502-
if input, ok := in.Parameters.(*s3.UploadPartInput); ok && input.PartNumber == 2 {
502+
if input, ok := in.Parameters.(*s3.UploadPartInput); ok && input.PartNumber == aws.Int32(2) {
503503
ctx = v4.SetPayloadHash(ctx, "000")
504504
}
505505

Diff for: feature/s3/manager/internal/integration/integration.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func CleanupBucket(client *s3.Client, bucketName string) error {
156156
errs = append(errs, fmt.Errorf("failed to delete %s, %s", aws.ToString(deleteError.Key), aws.ToString(deleteError.Message)))
157157
}
158158

159-
if listObjectsV2.IsTruncated {
159+
if aws.ToBool(listObjectsV2.IsTruncated) {
160160
input.ContinuationToken = listObjectsV2.NextContinuationToken
161161
} else {
162162
break
@@ -182,7 +182,7 @@ func CleanupBucket(client *s3.Client, bucketName string) error {
182182
})
183183
}
184184

185-
if uploads.IsTruncated {
185+
if aws.ToBool(uploads.IsTruncated) {
186186
input.KeyMarker = uploads.NextKeyMarker
187187
input.UploadIdMarker = uploads.NextUploadIdMarker
188188
} else {

Diff for: feature/s3/manager/upload.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ func (u *uploader) singlePart(r io.ReadSeeker, cleanup func()) (*UploadOutput, e
501501
return &UploadOutput{
502502
Location: locationRecorder.location,
503503

504-
BucketKeyEnabled: out.BucketKeyEnabled,
504+
BucketKeyEnabled: aws.ToBool(out.BucketKeyEnabled),
505505
ChecksumCRC32: out.ChecksumCRC32,
506506
ChecksumCRC32C: out.ChecksumCRC32C,
507507
ChecksumSHA1: out.ChecksumSHA1,
@@ -568,9 +568,11 @@ type chunk struct {
568568
// since S3 required this list to be sent in sorted order.
569569
type completedParts []types.CompletedPart
570570

571-
func (a completedParts) Len() int { return len(a) }
572-
func (a completedParts) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
573-
func (a completedParts) Less(i, j int) bool { return a[i].PartNumber < a[j].PartNumber }
571+
func (a completedParts) Len() int { return len(a) }
572+
func (a completedParts) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
573+
func (a completedParts) Less(i, j int) bool {
574+
return aws.ToInt32(a[i].PartNumber) < aws.ToInt32(a[j].PartNumber)
575+
}
574576

575577
// upload will perform a multipart upload using the firstBuf buffer containing
576578
// the first chunk of data.
@@ -639,7 +641,7 @@ func (u *multiuploader) upload(firstBuf io.ReadSeeker, cleanup func()) (*UploadO
639641
UploadID: u.uploadID,
640642
CompletedParts: u.parts,
641643

642-
BucketKeyEnabled: completeOut.BucketKeyEnabled,
644+
BucketKeyEnabled: aws.ToBool(completeOut.BucketKeyEnabled),
643645
ChecksumCRC32: completeOut.ChecksumCRC32,
644646
ChecksumCRC32C: completeOut.ChecksumCRC32C,
645647
ChecksumSHA1: completeOut.ChecksumSHA1,
@@ -722,7 +724,7 @@ func (u *multiuploader) send(c chunk) error {
722724
// PutObject as they are never valid for individual parts of a
723725
// multipart upload.
724726

725-
PartNumber: c.num,
727+
PartNumber: aws.Int32(c.num),
726728
UploadId: &u.uploadID,
727729
}
728730
// TODO should do copy then clear?
@@ -734,7 +736,7 @@ func (u *multiuploader) send(c chunk) error {
734736

735737
var completed types.CompletedPart
736738
awsutil.Copy(&completed, resp)
737-
completed.PartNumber = c.num
739+
completed.PartNumber = aws.Int32(c.num)
738740

739741
u.m.Lock()
740742
u.parts = append(u.parts, completed)

Diff for: feature/s3/manager/upload_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func TestUploadOrderMulti(t *testing.T) {
8989
num := parts[i].PartNumber
9090
etag := aws.ToString(parts[i].ETag)
9191

92-
if int32(i+1) != num {
92+
if int32(i+1) != aws.ToInt32(num) {
9393
t.Errorf("expect %d, got %d", i+1, num)
9494
}
9595

Diff for: service/internal/integrationtest/s3/checksum_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func TestInteg_ObjectChecksums(t *testing.T) {
104104
"content length preset": {
105105
params: &s3.PutObjectInput{
106106
Body: strings.NewReader("hello world"),
107-
ContentLength: 11,
107+
ContentLength: aws.Int64(11),
108108
ChecksumAlgorithm: s3types.ChecksumAlgorithmCrc32c,
109109
},
110110
getObjectChecksumMode: s3types.ChecksumModeEnabled,
@@ -198,7 +198,7 @@ func TestInteg_ObjectChecksums(t *testing.T) {
198198
"content length preset": {
199199
params: &s3.PutObjectInput{
200200
Body: ioutil.NopCloser(strings.NewReader("hello world")),
201-
ContentLength: 11,
201+
ContentLength: aws.Int64(11),
202202
ChecksumAlgorithm: s3types.ChecksumAlgorithmCrc32c,
203203
},
204204
getObjectChecksumMode: s3types.ChecksumModeEnabled,
@@ -449,7 +449,7 @@ func TestInteg_RequireChecksum(t *testing.T) {
449449
Objects: []s3types.ObjectIdentifier{
450450
{Key: aws.String(t.Name())},
451451
},
452-
Quiet: true,
452+
Quiet: aws.Bool(true),
453453
},
454454
ChecksumAlgorithm: c.checksumAlgorithm,
455455
})

Diff for: service/internal/integrationtest/s3/presign_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ func TestInteg_MultipartPresignURL(t *testing.T) {
192192
uploadPartInput := &s3.UploadPartInput{
193193
Bucket: &setupMetadata.Buckets.Source.Name,
194194
Key: &key,
195-
PartNumber: 1,
195+
PartNumber: aws.Int32(1),
196196
UploadId: multipartUpload.UploadId,
197197
Body: c.body,
198198
}

Diff for: service/s3/api_op_CompleteMultipartUpload.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: service/s3/api_op_CopyObject.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)