Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] feat: Add checksum_crc64nvme arg to aws_s3_object + related resources and data sources #41015

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

acwwat
Copy link
Contributor

@acwwat acwwat commented Jan 21, 2025

Description

This PR is to add support for the CRC64NVME checksum algorithm for the aws_s3_object and aws_s3_object_copy resources and the aws_s3_object data source.

However, there seems to be an upstream problem where an AWS exception is returned saying that the CRC64NVME algorithm is unknown:

Error: uploading S3 Object (test-key) to Bucket (tf-acc-test-1407191056363142663): operation error S3: PutObject, failed to parse algorithm, unknown checksum algorithm, CRC64NVME

I dug deeper into the call stack and see that there might be an incomplete implementation in the SDK. The source code uses an Uploader to upload the file, however it doesn't seem to have references to the CRC64NVME algorithm. This likely is causing some issues.

That said, the error seems like a server-side error. At this point I am not exactly sure.

Relations

Closes #40964

References

Referred to PutObject for specs and wordings.

Used CRC - Online Tools to generate checksum values for the test cases.

Output from Acceptance Testing

For aws_s3_object resource (note the failed test case):

$ make testacc TESTS=TestAccS3Object_ PKG=s3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.3 test ./internal/service/s3/... -v -count 1 -parallel 20 -run='TestAccS3Object_'  -timeout 360m -vet=off
2025/01/20 18:40:15 Initializing Terraform AWS Provider...
=== RUN   TestAccS3Object_tags
=== PAUSE TestAccS3Object_tags
=== RUN   TestAccS3Object_tags_null
=== PAUSE TestAccS3Object_tags_null
=== RUN   TestAccS3Object_tags_EmptyMap
=== PAUSE TestAccS3Object_tags_EmptyMap
=== RUN   TestAccS3Object_tags_AddOnUpdate
=== PAUSE TestAccS3Object_tags_AddOnUpdate
=== RUN   TestAccS3Object_tags_EmptyTag_OnCreate
=== PAUSE TestAccS3Object_tags_EmptyTag_OnCreate
=== RUN   TestAccS3Object_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccS3Object_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccS3Object_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccS3Object_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccS3Object_tags_DefaultTags_providerOnly
=== PAUSE TestAccS3Object_tags_DefaultTags_providerOnly
=== RUN   TestAccS3Object_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccS3Object_tags_DefaultTags_nonOverlapping
=== RUN   TestAccS3Object_tags_DefaultTags_overlapping
=== PAUSE TestAccS3Object_tags_DefaultTags_overlapping
=== RUN   TestAccS3Object_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccS3Object_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccS3Object_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccS3Object_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccS3Object_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccS3Object_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccS3Object_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccS3Object_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccS3Object_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccS3Object_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccS3Object_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccS3Object_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccS3Object_tags_ComputedTag_OnCreate
=== PAUSE TestAccS3Object_tags_ComputedTag_OnCreate
=== RUN   TestAccS3Object_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccS3Object_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccS3Object_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccS3Object_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccS3Object_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccS3Object_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccS3Object_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccS3Object_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccS3Object_basic
=== PAUSE TestAccS3Object_basic
=== RUN   TestAccS3Object_disappears
=== PAUSE TestAccS3Object_disappears
=== RUN   TestAccS3Object_Disappears_bucket
=== PAUSE TestAccS3Object_Disappears_bucket
=== RUN   TestAccS3Object_upgradeFromV4
=== PAUSE TestAccS3Object_upgradeFromV4
=== RUN   TestAccS3Object_source
=== PAUSE TestAccS3Object_source
=== RUN   TestAccS3Object_content
=== PAUSE TestAccS3Object_content
=== RUN   TestAccS3Object_etagEncryption
=== PAUSE TestAccS3Object_etagEncryption
=== RUN   TestAccS3Object_contentBase64
=== PAUSE TestAccS3Object_contentBase64
=== RUN   TestAccS3Object_sourceHashTrigger
=== PAUSE TestAccS3Object_sourceHashTrigger
=== RUN   TestAccS3Object_withContentCharacteristics
=== PAUSE TestAccS3Object_withContentCharacteristics
=== RUN   TestAccS3Object_nonVersioned
=== PAUSE TestAccS3Object_nonVersioned
=== RUN   TestAccS3Object_updates
=== PAUSE TestAccS3Object_updates
=== RUN   TestAccS3Object_updateSameFile
=== PAUSE TestAccS3Object_updateSameFile
=== RUN   TestAccS3Object_updatesWithVersioning
=== PAUSE TestAccS3Object_updatesWithVersioning
=== RUN   TestAccS3Object_updatesWithVersioningViaAccessPoint
=== PAUSE TestAccS3Object_updatesWithVersioningViaAccessPoint
=== RUN   TestAccS3Object_kms
=== PAUSE TestAccS3Object_kms
=== RUN   TestAccS3Object_sse
=== PAUSE TestAccS3Object_sse
=== RUN   TestAccS3Object_acl
=== PAUSE TestAccS3Object_acl
=== RUN   TestAccS3Object_metadata
=== PAUSE TestAccS3Object_metadata
=== RUN   TestAccS3Object_storageClass
=== PAUSE TestAccS3Object_storageClass
=== RUN   TestAccS3Object_tagsLeadingSingleSlash
=== PAUSE TestAccS3Object_tagsLeadingSingleSlash
=== RUN   TestAccS3Object_tagsLeadingMultipleSlashes
=== PAUSE TestAccS3Object_tagsLeadingMultipleSlashes
=== RUN   TestAccS3Object_tagsMultipleSlashes
=== PAUSE TestAccS3Object_tagsMultipleSlashes
=== RUN   TestAccS3Object_tagsViaAccessPointARN
=== PAUSE TestAccS3Object_tagsViaAccessPointARN
=== RUN   TestAccS3Object_tagsViaAccessPointAlias
=== PAUSE TestAccS3Object_tagsViaAccessPointAlias
=== RUN   TestAccS3Object_tagsViaMultiRegionAccessPoint
=== PAUSE TestAccS3Object_tagsViaMultiRegionAccessPoint
=== RUN   TestAccS3Object_tagsViaObjectLambdaAccessPointARN
    object_test.go:1220: Accessing Objects via Lambda Access Points is not yet supported
--- SKIP: TestAccS3Object_tagsViaObjectLambdaAccessPointARN (0.00s)
=== RUN   TestAccS3Object_objectLockLegalHoldStartWithNone
=== PAUSE TestAccS3Object_objectLockLegalHoldStartWithNone
=== RUN   TestAccS3Object_objectLockLegalHoldStartWithOn
=== PAUSE TestAccS3Object_objectLockLegalHoldStartWithOn
=== RUN   TestAccS3Object_objectLockRetentionStartWithNone
=== PAUSE TestAccS3Object_objectLockRetentionStartWithNone
=== RUN   TestAccS3Object_objectLockRetentionStartWithSet
=== PAUSE TestAccS3Object_objectLockRetentionStartWithSet
=== RUN   TestAccS3Object_objectBucketKeyEnabled
=== PAUSE TestAccS3Object_objectBucketKeyEnabled
=== RUN   TestAccS3Object_bucketBucketKeyEnabled
=== PAUSE TestAccS3Object_bucketBucketKeyEnabled
=== RUN   TestAccS3Object_defaultBucketSSE
=== PAUSE TestAccS3Object_defaultBucketSSE
=== RUN   TestAccS3Object_ignoreTags
=== PAUSE TestAccS3Object_ignoreTags
=== RUN   TestAccS3Object_checksumAlgorithm
=== PAUSE TestAccS3Object_checksumAlgorithm
=== RUN   TestAccS3Object_keyWithSlashesMigrated
=== PAUSE TestAccS3Object_keyWithSlashesMigrated
=== RUN   TestAccS3Object_directoryBucket
=== PAUSE TestAccS3Object_directoryBucket
=== RUN   TestAccS3Object_DirectoryBucket_disappears
=== PAUSE TestAccS3Object_DirectoryBucket_disappears
=== RUN   TestAccS3Object_DirectoryBucket_DefaultTags_providerOnly
=== PAUSE TestAccS3Object_DirectoryBucket_DefaultTags_providerOnly
=== RUN   TestAccS3Object_DirectoryBucket_kmsSSE
=== PAUSE TestAccS3Object_DirectoryBucket_kmsSSE
=== RUN   TestAccS3Object_prefix
=== PAUSE TestAccS3Object_prefix
=== RUN   TestAccS3Object_crossRegion
=== PAUSE TestAccS3Object_crossRegion
=== RUN   TestAccS3Object_optInRegion
=== PAUSE TestAccS3Object_optInRegion
=== RUN   TestAccS3Object_defaultKMS
=== PAUSE TestAccS3Object_defaultKMS
=== RUN   TestAccS3Object_defaultKMSUpgrade
=== PAUSE TestAccS3Object_defaultKMSUpgrade
=== RUN   TestAccS3Object_basicUpgrade
=== PAUSE TestAccS3Object_basicUpgrade
=== CONT  TestAccS3Object_tags
=== CONT  TestAccS3Object_objectLockRetentionStartWithNone
=== CONT  TestAccS3Object_DirectoryBucket_disappears
=== CONT  TestAccS3Object_optInRegion
=== CONT  TestAccS3Object_source
=== CONT  TestAccS3Object_defaultKMSUpgrade
=== CONT  TestAccS3Object_basicUpgrade
=== CONT  TestAccS3Object_sse
=== CONT  TestAccS3Object_objectLockLegalHoldStartWithOn
=== CONT  TestAccS3Object_objectLockLegalHoldStartWithNone
=== CONT  TestAccS3Object_tags_DefaultTags_emptyProviderOnlyTag
=== CONT  TestAccS3Object_tagsViaMultiRegionAccessPoint
=== CONT  TestAccS3Object_defaultKMS
=== CONT  TestAccS3Object_upgradeFromV4
=== CONT  TestAccS3Object_tagsViaAccessPointAlias
=== CONT  TestAccS3Object_Disappears_bucket
=== CONT  TestAccS3Object_tagsViaAccessPointARN
=== CONT  TestAccS3Object_disappears
=== CONT  TestAccS3Object_tags_DefaultTags_providerOnly
=== CONT  TestAccS3Object_tagsMultipleSlashes
=== NAME  TestAccS3Object_optInRegion
    object_test.go:1897: this AWS account must be the management account of an AWS Organization
--- SKIP: TestAccS3Object_optInRegion (0.91s)
=== CONT  TestAccS3Object_basic
--- PASS: TestAccS3Object_Disappears_bucket (38.26s)
=== CONT  TestAccS3Object_tagsLeadingMultipleSlashes
--- PASS: TestAccS3Object_source (38.36s)
=== CONT  TestAccS3Object_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccS3Object_disappears (38.88s)
=== CONT  TestAccS3Object_tagsLeadingSingleSlash
--- PASS: TestAccS3Object_DirectoryBucket_disappears (38.99s)
=== CONT  TestAccS3Object_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccS3Object_defaultKMS (40.87s)
=== CONT  TestAccS3Object_tags_DefaultTags_emptyResourceTag
--- PASS: TestAccS3Object_sse (44.53s)
=== CONT  TestAccS3Object_storageClass
--- PASS: TestAccS3Object_basic (44.01s)
=== CONT  TestAccS3Object_tags_ComputedTag_OnUpdate_Replace
--- PASS: TestAccS3Object_tags_DefaultTags_emptyProviderOnlyTag (53.81s)
=== CONT  TestAccS3Object_metadata
--- PASS: TestAccS3Object_upgradeFromV4 (69.54s)
=== CONT  TestAccS3Object_tags_ComputedTag_OnUpdate_Add
--- PASS: TestAccS3Object_objectLockLegalHoldStartWithOn (75.11s)
=== CONT  TestAccS3Object_acl
--- PASS: TestAccS3Object_tagsViaAccessPointAlias (83.08s)
=== CONT  TestAccS3Object_tags_ComputedTag_OnCreate
--- PASS: TestAccS3Object_tagsViaAccessPointARN (85.16s)
=== CONT  TestAccS3Object_tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccS3Object_tags_DefaultTags_emptyResourceTag (62.31s)
=== CONT  TestAccS3Object_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccS3Object_objectLockRetentionStartWithNone (104.36s)
=== CONT  TestAccS3Object_prefix
--- PASS: TestAccS3Object_objectLockLegalHoldStartWithNone (109.00s)
=== CONT  TestAccS3Object_tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccS3Object_basicUpgrade (110.95s)
=== CONT  TestAccS3Object_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccS3Object_defaultKMSUpgrade (118.32s)
=== CONT  TestAccS3Object_crossRegion
--- PASS: TestAccS3Object_tagsMultipleSlashes (143.25s)
=== CONT  TestAccS3Object_tags_DefaultTags_overlapping
--- PASS: TestAccS3Object_crossRegion (28.86s)
=== CONT  TestAccS3Object_tags_DefaultTags_nonOverlapping
--- PASS: TestAccS3Object_tags_DefaultTags_nullNonOverlappingResourceTag (64.40s)
=== CONT  TestAccS3Object_tags_EmptyTag_OnCreate
--- PASS: TestAccS3Object_prefix (49.81s)
=== CONT  TestAccS3Object_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccS3Object_tags_IgnoreTags_Overlap_DefaultTag (127.57s)
=== CONT  TestAccS3Object_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccS3Object_metadata (113.59s)
=== CONT  TestAccS3Object_DirectoryBucket_kmsSSE
--- PASS: TestAccS3Object_tags_DefaultTags_nullOverlappingResourceTag (63.22s)
=== CONT  TestAccS3Object_nonVersioned
    object_test.go:467: skipping test; environment variable TF_ACC_ASSUME_ROLE_ARN must be set. Usage: Amazon Resource Name (ARN) of existing IAM Role to assume for testing restricted permissions
--- SKIP: TestAccS3Object_nonVersioned (0.06s)
=== CONT  TestAccS3Object_contentBase64
--- PASS: TestAccS3Object_tags_ComputedTag_OnCreate (95.52s)
=== CONT  TestAccS3Object_updatesWithVersioning
--- PASS: TestAccS3Object_tagsLeadingMultipleSlashes (141.26s)
=== CONT  TestAccS3Object_withContentCharacteristics
--- PASS: TestAccS3Object_tags_ComputedTag_OnUpdate_Replace (135.74s)
=== CONT  TestAccS3Object_kms
--- PASS: TestAccS3Object_tags_IgnoreTags_Overlap_ResourceTag (142.38s)
=== CONT  TestAccS3Object_sourceHashTrigger
--- PASS: TestAccS3Object_tagsLeadingSingleSlash (151.62s)
=== CONT  TestAccS3Object_updateSameFile
--- PASS: TestAccS3Object_acl (118.67s)
=== CONT  TestAccS3Object_updatesWithVersioningViaAccessPoint
--- PASS: TestAccS3Object_tags (204.76s)
=== CONT  TestAccS3Object_updates
--- PASS: TestAccS3Object_tags_DefaultTags_updateToResourceOnly (103.65s)
=== CONT  TestAccS3Object_ignoreTags
--- PASS: TestAccS3Object_tags_ComputedTag_OnUpdate_Add (140.90s)
=== CONT  TestAccS3Object_tags_null
--- PASS: TestAccS3Object_contentBase64 (39.65s)
=== CONT  TestAccS3Object_directoryBucket
--- PASS: TestAccS3Object_tags_DefaultTags_updateToProviderOnly (102.58s)
=== CONT  TestAccS3Object_bucketBucketKeyEnabled
--- PASS: TestAccS3Object_storageClass (174.00s)
=== CONT  TestAccS3Object_tags_EmptyMap
--- PASS: TestAccS3Object_withContentCharacteristics (40.69s)
=== CONT  TestAccS3Object_keyWithSlashesMigrated
--- PASS: TestAccS3Object_tags_DefaultTags_providerOnly (221.16s)
=== CONT  TestAccS3Object_defaultBucketSSE
--- PASS: TestAccS3Object_DirectoryBucket_kmsSSE (56.00s)
=== CONT  TestAccS3Object_tags_AddOnUpdate
--- PASS: TestAccS3Object_kms (54.37s)
=== CONT  TestAccS3Object_checksumAlgorithm
--- PASS: TestAccS3Object_tags_EmptyTag_OnUpdate_Replace (96.93s)
=== CONT  TestAccS3Object_objectBucketKeyEnabled
--- PASS: TestAccS3Object_bucketBucketKeyEnabled (44.06s)
=== CONT  TestAccS3Object_DirectoryBucket_DefaultTags_providerOnly
--- PASS: TestAccS3Object_tags_EmptyTag_OnCreate (108.41s)
=== CONT  TestAccS3Object_objectLockRetentionStartWithSet
--- PASS: TestAccS3Object_defaultBucketSSE (39.67s)
=== CONT  TestAccS3Object_etagEncryption
--- PASS: TestAccS3Object_directoryBucket (53.90s)
=== CONT  TestAccS3Object_content
--- PASS: TestAccS3Object_updatesWithVersioning (87.40s)
--- PASS: TestAccS3Object_sourceHashTrigger (86.66s)
--- PASS: TestAccS3Object_updateSameFile (80.99s)
--- PASS: TestAccS3Object_updatesWithVersioningViaAccessPoint (83.52s)
--- PASS: TestAccS3Object_ignoreTags (75.56s)
--- PASS: TestAccS3Object_tags_null (75.28s)
--- PASS: TestAccS3Object_objectBucketKeyEnabled (37.48s)
--- PASS: TestAccS3Object_updates (84.53s)
--- PASS: TestAccS3Object_DirectoryBucket_DefaultTags_providerOnly (33.29s)
--- PASS: TestAccS3Object_tags_EmptyMap (73.28s)
--- PASS: TestAccS3Object_keyWithSlashesMigrated (73.61s)
--- PASS: TestAccS3Object_tags_DefaultTags_overlapping (155.74s)
--- PASS: TestAccS3Object_tags_EmptyTag_OnUpdate_Add (133.04s)
--- PASS: TestAccS3Object_etagEncryption (40.52s)
--- PASS: TestAccS3Object_content (37.03s)
--- PASS: TestAccS3Object_tags_DefaultTags_nonOverlapping (155.82s)
=== NAME  TestAccS3Object_checksumAlgorithm
    object_test.go:1586: Step 4/4 error: Error running apply: exit status 1

        Error: uploading S3 Object (test-key) to Bucket (tf-acc-test-1407191056363142663): operation error S3: PutObject, failed to parse algorithm, unknown checksum algorithm, CRC64NVME

          with aws_s3_object.object,
          on terraform_plugin_test.tf line 16, in resource "aws_s3_object" "object":
          16: resource "aws_s3_object" "object" {

--- PASS: TestAccS3Object_tags_AddOnUpdate (82.77s)
--- FAIL: TestAccS3Object_checksumAlgorithm (75.23s)
--- PASS: TestAccS3Object_objectLockRetentionStartWithSet (89.58s)
--- PASS: TestAccS3Object_tagsViaMultiRegionAccessPoint (358.50s)
FAIL
FAIL    github.com/hashicorp/terraform-provider-aws/internal/service/s3 358.775s
FAIL
make: *** [GNUmakefile:614: testacc] Error 1

$

For aws_s3_object_copy resource:

$ make testacc TESTS=TestAccS3ObjectCopy_ PKG=s3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.3 test ./internal/service/s3/... -v -count 1 -parallel 20 -run='TestAccS3ObjectCopy_'  -timeout 360m -vet=off
2025/01/20 19:05:15 Initializing Terraform AWS Provider...
=== RUN   TestAccS3ObjectCopy_tags
=== PAUSE TestAccS3ObjectCopy_tags
=== RUN   TestAccS3ObjectCopy_tags_null
=== PAUSE TestAccS3ObjectCopy_tags_null
=== RUN   TestAccS3ObjectCopy_tags_EmptyMap
=== PAUSE TestAccS3ObjectCopy_tags_EmptyMap
=== RUN   TestAccS3ObjectCopy_tags_AddOnUpdate
=== PAUSE TestAccS3ObjectCopy_tags_AddOnUpdate
=== RUN   TestAccS3ObjectCopy_tags_EmptyTag_OnCreate
=== PAUSE TestAccS3ObjectCopy_tags_EmptyTag_OnCreate
=== RUN   TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_providerOnly
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_providerOnly
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_nonOverlapping
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_overlapping
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_overlapping
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccS3ObjectCopy_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccS3ObjectCopy_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccS3ObjectCopy_tags_ComputedTag_OnCreate
=== PAUSE TestAccS3ObjectCopy_tags_ComputedTag_OnCreate
=== RUN   TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccS3ObjectCopy_basic
=== PAUSE TestAccS3ObjectCopy_basic
=== RUN   TestAccS3ObjectCopy_disappears
=== PAUSE TestAccS3ObjectCopy_disappears
=== RUN   TestAccS3ObjectCopy_metadata
=== PAUSE TestAccS3ObjectCopy_metadata
=== RUN   TestAccS3ObjectCopy_grant
=== PAUSE TestAccS3ObjectCopy_grant
=== RUN   TestAccS3ObjectCopy_BucketKeyEnabled_bucket
=== PAUSE TestAccS3ObjectCopy_BucketKeyEnabled_bucket
=== RUN   TestAccS3ObjectCopy_BucketKeyEnabled_object
=== PAUSE TestAccS3ObjectCopy_BucketKeyEnabled_object
=== RUN   TestAccS3ObjectCopy_DefaultTags_providerOnly
=== PAUSE TestAccS3ObjectCopy_DefaultTags_providerOnly
=== RUN   TestAccS3ObjectCopy_DefaultTags_providerAndResource
=== PAUSE TestAccS3ObjectCopy_DefaultTags_providerAndResource
=== RUN   TestAccS3ObjectCopy_DefaultTags_providerAndResourceWithOverride
=== PAUSE TestAccS3ObjectCopy_DefaultTags_providerAndResourceWithOverride
=== RUN   TestAccS3ObjectCopy_sourceWithSlashes
=== PAUSE TestAccS3ObjectCopy_sourceWithSlashes
=== RUN   TestAccS3ObjectCopy_checksumAlgorithm
=== PAUSE TestAccS3ObjectCopy_checksumAlgorithm
=== RUN   TestAccS3ObjectCopy_objectLockLegalHold
=== PAUSE TestAccS3ObjectCopy_objectLockLegalHold
=== RUN   TestAccS3ObjectCopy_targetWithMultipleSlashes
=== PAUSE TestAccS3ObjectCopy_targetWithMultipleSlashes
=== RUN   TestAccS3ObjectCopy_targetWithMultipleSlashesMigrated
=== PAUSE TestAccS3ObjectCopy_targetWithMultipleSlashesMigrated
=== RUN   TestAccS3ObjectCopy_directoryBucket
=== PAUSE TestAccS3ObjectCopy_directoryBucket
=== RUN   TestAccS3ObjectCopy_basicViaAccessPoint
=== PAUSE TestAccS3ObjectCopy_basicViaAccessPoint
=== CONT  TestAccS3ObjectCopy_tags
=== CONT  TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_DefaultTag
=== CONT  TestAccS3ObjectCopy_DefaultTags_providerAndResource
=== CONT  TestAccS3ObjectCopy_grant
=== CONT  TestAccS3ObjectCopy_DefaultTags_providerOnly
=== CONT  TestAccS3ObjectCopy_BucketKeyEnabled_object
=== CONT  TestAccS3ObjectCopy_BucketKeyEnabled_bucket
=== CONT  TestAccS3ObjectCopy_targetWithMultipleSlashes
=== CONT  TestAccS3ObjectCopy_basicViaAccessPoint
=== CONT  TestAccS3ObjectCopy_directoryBucket
=== CONT  TestAccS3ObjectCopy_targetWithMultipleSlashesMigrated
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_updateToProviderOnly
=== CONT  TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Replace
=== CONT  TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Add
=== CONT  TestAccS3ObjectCopy_tags_ComputedTag_OnCreate
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_nullNonOverlappingResourceTag
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_nullOverlappingResourceTag
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_emptyProviderOnlyTag
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_emptyResourceTag
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccS3ObjectCopy_BucketKeyEnabled_bucket (35.40s)
=== CONT  TestAccS3ObjectCopy_disappears
--- PASS: TestAccS3ObjectCopy_DefaultTags_providerOnly (36.23s)
=== CONT  TestAccS3ObjectCopy_metadata
--- PASS: TestAccS3ObjectCopy_targetWithMultipleSlashes (37.35s)
=== CONT  TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccS3ObjectCopy_BucketKeyEnabled_object (38.90s)
=== CONT  TestAccS3ObjectCopy_checksumAlgorithm
--- PASS: TestAccS3ObjectCopy_grant (39.95s)
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_overlapping
--- PASS: TestAccS3ObjectCopy_directoryBucket (41.30s)
=== CONT  TestAccS3ObjectCopy_objectLockLegalHold
--- PASS: TestAccS3ObjectCopy_basicViaAccessPoint (46.07s)
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_nonOverlapping
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_nullNonOverlappingResourceTag (47.34s)
=== CONT  TestAccS3ObjectCopy_tags_DefaultTags_providerOnly
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_emptyResourceTag (47.82s)
=== CONT  TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_emptyProviderOnlyTag (48.00s)
=== CONT  TestAccS3ObjectCopy_tags_AddOnUpdate
--- PASS: TestAccS3ObjectCopy_tags_ComputedTag_OnCreate (48.19s)
=== CONT  TestAccS3ObjectCopy_tags_EmptyTag_OnCreate
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_nullOverlappingResourceTag (48.72s)
=== CONT  TestAccS3ObjectCopy_sourceWithSlashes
--- PASS: TestAccS3ObjectCopy_DefaultTags_providerAndResource (61.11s)
=== CONT  TestAccS3ObjectCopy_DefaultTags_providerAndResourceWithOverride
--- PASS: TestAccS3ObjectCopy_targetWithMultipleSlashesMigrated (73.50s)
=== CONT  TestAccS3ObjectCopy_basic
--- PASS: TestAccS3ObjectCopy_metadata (39.22s)
=== CONT  TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccS3ObjectCopy_disappears (42.31s)
=== CONT  TestAccS3ObjectCopy_tags_EmptyMap
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_updateToResourceOnly (80.44s)
=== CONT  TestAccS3ObjectCopy_tags_null
--- PASS: TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Add (83.97s)
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_updateToProviderOnly (84.64s)
--- PASS: TestAccS3ObjectCopy_tags_ComputedTag_OnUpdate_Replace (84.81s)
--- PASS: TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_DefaultTag (108.60s)
--- PASS: TestAccS3ObjectCopy_basic (37.24s)
--- PASS: TestAccS3ObjectCopy_sourceWithSlashes (62.31s)
--- PASS: TestAccS3ObjectCopy_objectLockLegalHold (70.31s)
--- PASS: TestAccS3ObjectCopy_tags_EmptyTag_OnCreate (70.01s)
--- PASS: TestAccS3ObjectCopy_DefaultTags_providerAndResourceWithOverride (57.23s)
--- PASS: TestAccS3ObjectCopy_tags_AddOnUpdate (71.10s)
--- PASS: TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Replace (71.46s)
--- PASS: TestAccS3ObjectCopy_tags_EmptyMap (45.22s)
--- PASS: TestAccS3ObjectCopy_checksumAlgorithm (85.92s)
--- PASS: TestAccS3ObjectCopy_tags_null (44.64s)
--- PASS: TestAccS3ObjectCopy_tags (130.88s)
--- PASS: TestAccS3ObjectCopy_tags_EmptyTag_OnUpdate_Add (93.97s)
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_overlapping (96.89s)
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_nonOverlapping (92.99s)
--- PASS: TestAccS3ObjectCopy_tags_IgnoreTags_Overlap_ResourceTag (77.69s)
--- PASS: TestAccS3ObjectCopy_tags_DefaultTags_providerOnly (109.55s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/s3 157.174s

$

For aws_s3_object data source:

$ make testacc TESTS=TestAccS3ObjectDataSource_ PKG=s3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.3 test ./internal/service/s3/... -v -count 1 -parallel 20 -run='TestAccS3ObjectDataSource_'  -timeout 360m -vet=off
2025/01/20 18:30:56 Initializing Terraform AWS Provider...
=== RUN   TestAccS3ObjectDataSource_tags
=== PAUSE TestAccS3ObjectDataSource_tags
=== RUN   TestAccS3ObjectDataSource_tags_NullMap
=== PAUSE TestAccS3ObjectDataSource_tags_NullMap
=== RUN   TestAccS3ObjectDataSource_tags_EmptyMap
=== PAUSE TestAccS3ObjectDataSource_tags_EmptyMap
=== RUN   TestAccS3ObjectDataSource_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccS3ObjectDataSource_tags_DefaultTags_nonOverlapping
=== RUN   TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccS3ObjectDataSource_basic
=== PAUSE TestAccS3ObjectDataSource_basic
=== RUN   TestAccS3ObjectDataSource_basicViaAccessPoint
=== PAUSE TestAccS3ObjectDataSource_basicViaAccessPoint
=== RUN   TestAccS3ObjectDataSource_readableBody
=== PAUSE TestAccS3ObjectDataSource_readableBody
=== RUN   TestAccS3ObjectDataSource_kmsEncrypted
=== PAUSE TestAccS3ObjectDataSource_kmsEncrypted
=== RUN   TestAccS3ObjectDataSource_bucketKeyEnabled
=== PAUSE TestAccS3ObjectDataSource_bucketKeyEnabled
=== RUN   TestAccS3ObjectDataSource_allParams
=== PAUSE TestAccS3ObjectDataSource_allParams
=== RUN   TestAccS3ObjectDataSource_objectLockLegalHoldOff
=== PAUSE TestAccS3ObjectDataSource_objectLockLegalHoldOff
=== RUN   TestAccS3ObjectDataSource_objectLockLegalHoldOn
=== PAUSE TestAccS3ObjectDataSource_objectLockLegalHoldOn
=== RUN   TestAccS3ObjectDataSource_leadingSlash
=== PAUSE TestAccS3ObjectDataSource_leadingSlash
=== RUN   TestAccS3ObjectDataSource_multipleSlashes
=== PAUSE TestAccS3ObjectDataSource_multipleSlashes
=== RUN   TestAccS3ObjectDataSource_singleSlashAsKey
=== PAUSE TestAccS3ObjectDataSource_singleSlashAsKey
=== RUN   TestAccS3ObjectDataSource_leadingDotSlash
=== PAUSE TestAccS3ObjectDataSource_leadingDotSlash
=== RUN   TestAccS3ObjectDataSource_leadingMultipleSlashes
=== PAUSE TestAccS3ObjectDataSource_leadingMultipleSlashes
=== RUN   TestAccS3ObjectDataSource_checksumMode
=== PAUSE TestAccS3ObjectDataSource_checksumMode
=== RUN   TestAccS3ObjectDataSource_metadata
=== PAUSE TestAccS3ObjectDataSource_metadata
=== RUN   TestAccS3ObjectDataSource_metadataUppercaseKey
=== PAUSE TestAccS3ObjectDataSource_metadataUppercaseKey
=== RUN   TestAccS3ObjectDataSource_directoryBucket
=== PAUSE TestAccS3ObjectDataSource_directoryBucket
=== CONT  TestAccS3ObjectDataSource_tags
=== CONT  TestAccS3ObjectDataSource_objectLockLegalHoldOff
=== CONT  TestAccS3ObjectDataSource_leadingMultipleSlashes
=== CONT  TestAccS3ObjectDataSource_basic
=== CONT  TestAccS3ObjectDataSource_tags_DefaultTags_nonOverlapping
=== CONT  TestAccS3ObjectDataSource_tags_EmptyMap
=== CONT  TestAccS3ObjectDataSource_directoryBucket
=== CONT  TestAccS3ObjectDataSource_checksumMode
=== CONT  TestAccS3ObjectDataSource_kmsEncrypted
=== CONT  TestAccS3ObjectDataSource_allParams
=== CONT  TestAccS3ObjectDataSource_bucketKeyEnabled
=== CONT  TestAccS3ObjectDataSource_multipleSlashes
=== CONT  TestAccS3ObjectDataSource_leadingDotSlash
=== CONT  TestAccS3ObjectDataSource_singleSlashAsKey
=== CONT  TestAccS3ObjectDataSource_tags_NullMap
=== CONT  TestAccS3ObjectDataSource_metadataUppercaseKey
=== CONT  TestAccS3ObjectDataSource_leadingSlash
=== CONT  TestAccS3ObjectDataSource_metadata
=== CONT  TestAccS3ObjectDataSource_objectLockLegalHoldOn
=== CONT  TestAccS3ObjectDataSource_readableBody
--- PASS: TestAccS3ObjectDataSource_singleSlashAsKey (19.27s)
=== CONT  TestAccS3ObjectDataSource_basicViaAccessPoint
--- PASS: TestAccS3ObjectDataSource_basic (36.72s)
=== CONT  TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccS3ObjectDataSource_metadata (38.04s)
=== CONT  TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccS3ObjectDataSource_bucketKeyEnabled (38.22s)
--- PASS: TestAccS3ObjectDataSource_checksumMode (38.79s)
--- PASS: TestAccS3ObjectDataSource_readableBody (39.24s)
--- PASS: TestAccS3ObjectDataSource_kmsEncrypted (40.64s)
--- PASS: TestAccS3ObjectDataSource_directoryBucket (41.14s)
--- PASS: TestAccS3ObjectDataSource_tags (43.32s)
--- PASS: TestAccS3ObjectDataSource_tags_EmptyMap (44.25s)
--- PASS: TestAccS3ObjectDataSource_objectLockLegalHoldOff (44.53s)
--- PASS: TestAccS3ObjectDataSource_objectLockLegalHoldOn (44.53s)
--- PASS: TestAccS3ObjectDataSource_allParams (45.26s)
--- PASS: TestAccS3ObjectDataSource_tags_NullMap (45.35s)
--- PASS: TestAccS3ObjectDataSource_tags_DefaultTags_nonOverlapping (45.48s)
--- PASS: TestAccS3ObjectDataSource_leadingSlash (52.12s)
--- PASS: TestAccS3ObjectDataSource_basicViaAccessPoint (33.52s)
--- PASS: TestAccS3ObjectDataSource_leadingDotSlash (53.66s)
--- PASS: TestAccS3ObjectDataSource_leadingMultipleSlashes (53.97s)
--- PASS: TestAccS3ObjectDataSource_multipleSlashes (54.15s)
--- PASS: TestAccS3ObjectDataSource_metadataUppercaseKey (54.46s)
--- PASS: TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_DefaultTag (27.03s)
--- PASS: TestAccS3ObjectDataSource_tags_IgnoreTags_Overlap_ResourceTag (28.53s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/s3 65.564s

$

@acwwat acwwat requested a review from a team as a code owner January 21, 2025 00:19
Copy link

Community Note

Voting for Prioritization

  • Please vote on this pull request by adding a 👍 reaction to the original post to help the community and maintainers prioritize this pull request.
  • Please see our prioritization guide for information on how we prioritize.
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.

For Submitters

  • Review the contribution guide relating to the type of change you are making to ensure all of the necessary steps have been taken.
  • For new resources and data sources, use skaff to generate scaffolding with comments detailing common expectations.
  • Whether or not the branch has been rebased will not impact prioritization, but doing so is always a welcome surprise.

@github-actions github-actions bot added documentation Introduces or discusses updates to documentation. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/s3 Issues and PRs that pertain to the s3 service. needs-triage Waiting for first response or review from a maintainer. external-maintainer Contribution from a trusted external contributor. labels Jan 21, 2025
@justinretzolk justinretzolk added enhancement Requests to existing resources that expand the functionality or scope. and removed needs-triage Waiting for first response or review from a maintainer. labels Jan 21, 2025
@ewbankkit
Copy link
Contributor

Relates aws/aws-sdk-go-v2#2985.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Introduces or discusses updates to documentation. enhancement Requests to existing resources that expand the functionality or scope. external-maintainer Contribution from a trusted external contributor. service/s3 Issues and PRs that pertain to the s3 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

S3 Object support CRC64-NVME checksum algorithm
3 participants