Skip to content

Commit 3169654

Browse files
authored
chore: deprecate key field in StorageListResult.Item (#3610)
1 parent 8c85096 commit 3169654

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

Amplify/Categories/Storage/Result/StorageListResult.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ extension StorageListResult {
5050
/// The unique identifier of the object in storage.
5151
///
5252
/// - Tag: StorageListResultItem.key
53+
@available(*, deprecated, message: "Use `path` instead.")
5354
public let key: String
5455

5556
/// Size in bytes of the object
@@ -77,7 +78,7 @@ extension StorageListResult {
7778
/// [StorageCategoryBehavior.list](x-source-tag://StorageCategoryBehavior.list).
7879
///
7980
/// - Tag: StorageListResultItem.init
80-
@available(*, deprecated, message: "Use init(path:key:size:lastModifiedDate:eTag:pluginResults)")
81+
@available(*, deprecated, message: "Use init(path:size:lastModifiedDate:eTag:pluginResults)")
8182
public init(
8283
key: String,
8384
size: Int? = nil,
@@ -95,14 +96,13 @@ extension StorageListResult {
9596

9697
public init(
9798
path: String,
98-
key: String,
9999
size: Int? = nil,
100100
eTag: String? = nil,
101101
lastModified: Date? = nil,
102102
pluginResults: Any? = nil
103103
) {
104104
self.path = path
105-
self.key = key
105+
self.key = path
106106
self.size = size
107107
self.eTag = eTag
108108
self.lastModified = lastModified

AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin/Tasks/AWSS3StorageListObjectsTask.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class AWSS3StorageListObjectsTask: StorageListObjectsTask, DefaultLogger {
3838
guard let path = try await request.path?.resolvePath() else {
3939
throw StorageError.validation(
4040
"path",
41-
"`path` is required for removing an object",
41+
"`path` is required for listing objects",
4242
"Make sure that a valid `path` is passed for removing an object")
4343
}
4444
let input = ListObjectsV2Input(bucket: storageBehaviour.bucket,
@@ -51,12 +51,11 @@ class AWSS3StorageListObjectsTask: StorageListObjectsTask, DefaultLogger {
5151
let response = try await storageBehaviour.client.listObjectsV2(input: input)
5252
let contents: S3BucketContents = response.contents ?? []
5353
let items = try contents.map { s3Object in
54-
guard let key = s3Object.key else {
54+
guard let path = s3Object.key else {
5555
throw StorageError.unknown("Missing key in response")
5656
}
5757
return StorageListResult.Item(
5858
path: path,
59-
key: key,
6059
eTag: s3Object.eTag,
6160
lastModified: s3Object.lastModified)
6261
}

AmplifyPlugins/Storage/Tests/AWSS3StoragePluginTests/Tasks/AWSS3StorageListObjectsTaskTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class AWSS3StorageListObjectsTaskTests: XCTestCase {
4141
XCTAssertEqual(value.nextToken, "continuationToken")
4242
XCTAssertEqual(value.items[0].eTag, "tag")
4343
XCTAssertEqual(value.items[0].key, "key")
44+
XCTAssertEqual(value.items[0].path, "key")
4445
XCTAssertNotNil(value.items[0].lastModified)
4546

4647
}

AmplifyPlugins/Storage/Tests/StorageHostApp/AWSS3StoragePluginIntegrationTests/AWSS3StoragePluginListObjectsIntegrationTests.swift

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@ class AWSS3StoragePluginListObjectsIntegrationTests: AWSS3StoragePluginTestBase
2929
let firstListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
3030

3131
// Validate the item was uploaded.
32-
XCTAssertEqual(firstListResult.items.filter({ $0.path == uniqueStringPath}).count, 1)
32+
XCTAssertEqual(firstListResult.items.filter({ $0.path.contains(uniqueStringPath)
33+
}).count, 1)
3334

3435
_ = try await Amplify.Storage.uploadData(path: .fromString(uniqueStringPath + "/test2"), data: data, options: nil).value
3536

3637
let secondListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
3738

3839
// Validate the item was uploaded.
39-
XCTAssertEqual(secondListResult.items.filter({ $0.path == uniqueStringPath}).count, 2)
40+
XCTAssertEqual(secondListResult.items.filter({ $0.path.contains(uniqueStringPath)
41+
}).count, 2)
4042

4143
// Clean up
4244
_ = try await Amplify.Storage.remove(path: .fromString(uniqueStringPath + "/test1"))
@@ -65,7 +67,8 @@ class AWSS3StoragePluginListObjectsIntegrationTests: AWSS3StoragePluginTestBase
6567
let firstListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
6668

6769
// Validate the item was uploaded.
68-
XCTAssertEqual(firstListResult.items.filter({ $0.path == uniqueStringPath}).count, 1)
70+
XCTAssertEqual(firstListResult.items.filter({ $0.path.contains(uniqueStringPath)
71+
}).count, 1)
6972

7073
_ = try await Amplify.Storage.uploadData(
7174
path: .fromIdentityID({ identityId in
@@ -78,7 +81,8 @@ class AWSS3StoragePluginListObjectsIntegrationTests: AWSS3StoragePluginTestBase
7881
let secondListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
7982

8083
// Validate the item was uploaded.
81-
XCTAssertEqual(secondListResult.items.filter({ $0.path == uniqueStringPath}).count, 2)
84+
XCTAssertEqual(secondListResult.items.filter({ $0.path.contains(uniqueStringPath)
85+
}).count, 2)
8286

8387
// clean up
8488
_ = try await Amplify.Storage.remove(path: .fromString(uniqueStringPath + "test1"))
@@ -108,7 +112,8 @@ class AWSS3StoragePluginListObjectsIntegrationTests: AWSS3StoragePluginTestBase
108112
let firstListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
109113

110114
// Validate the item was uploaded.
111-
XCTAssertEqual(firstListResult.items.filter({ $0.path == uniqueStringPath}).count, 1)
115+
XCTAssertEqual(firstListResult.items.filter({ $0.path.contains(uniqueStringPath)
116+
}).count, 1)
112117

113118
_ = try await Amplify.Storage.uploadData(
114119
path: .fromIdentityID({ identityId in
@@ -121,7 +126,8 @@ class AWSS3StoragePluginListObjectsIntegrationTests: AWSS3StoragePluginTestBase
121126
let secondListResult = try await Amplify.Storage.list(path: .fromString(uniqueStringPath))
122127

123128
// Validate the item was uploaded.
124-
XCTAssertEqual(secondListResult.items.filter({ $0.path == uniqueStringPath}).count, 2)
129+
XCTAssertEqual(secondListResult.items.filter({ $0.path.contains(uniqueStringPath)
130+
}).count, 2)
125131

126132
// clean up
127133
_ = try await Amplify.Storage.remove(path: .fromString(uniqueStringPath + "test1"))

0 commit comments

Comments
 (0)