@@ -131,6 +131,11 @@ public void uploadFiles() throws Exception {
131
131
UploadJob job = transferManager .uploadFiles (files , parallelUploadConfig );
132
132
List <UploadResult > uploadResults = job .getUploadResults ();
133
133
assertThat (uploadResults ).hasSize (3 );
134
+ assertThat (
135
+ uploadResults .stream ()
136
+ .filter (result -> result .getStatus () == TransferStatus .SUCCESS )
137
+ .collect (Collectors .toList ()))
138
+ .hasSize (3 );
134
139
}
135
140
}
136
141
@@ -153,6 +158,11 @@ public void uploadFilesWithOpts() throws Exception {
153
158
UploadJob job = transferManager .uploadFiles (files , parallelUploadConfig );
154
159
List <UploadResult > uploadResults = job .getUploadResults ();
155
160
assertThat (uploadResults ).hasSize (3 );
161
+ assertThat (
162
+ uploadResults .stream ()
163
+ .filter (result -> result .getStatus () == TransferStatus .SUCCESS )
164
+ .collect (Collectors .toList ()))
165
+ .hasSize (3 );
156
166
}
157
167
}
158
168
@@ -178,9 +188,14 @@ public void uploadFilesOneFailure() throws Exception {
178
188
assertThat (uploadResults ).hasSize (4 );
179
189
assertThat (
180
190
uploadResults .stream ()
181
- .filter (x -> x .getStatus () == TransferStatus .FAILED_TO_START )
191
+ .filter (x -> x .getStatus () == TransferStatus .FAILED_TO_FINISH )
182
192
.collect (Collectors .toList ()))
183
193
.hasSize (1 );
194
+ assertThat (
195
+ uploadResults .stream ()
196
+ .filter (result -> result .getStatus () == TransferStatus .SUCCESS )
197
+ .collect (Collectors .toList ()))
198
+ .hasSize (3 );
184
199
}
185
200
}
186
201
@@ -196,7 +211,7 @@ public void uploadNonexistentBucket() throws Exception {
196
211
ParallelUploadConfig .newBuilder ().setBucketName (bucketName ).build ();
197
212
UploadJob job = transferManager .uploadFiles (files , parallelUploadConfig );
198
213
List <UploadResult > uploadResults = job .getUploadResults ();
199
- assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .FAILED_TO_START );
214
+ assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .FAILED_TO_FINISH );
200
215
assertThat (uploadResults .get (0 ).getException ()).isInstanceOf (StorageException .class );
201
216
}
202
217
}
@@ -212,11 +227,56 @@ public void uploadNonexistentFile() throws Exception {
212
227
ParallelUploadConfig .newBuilder ().setBucketName (bucketName ).build ();
213
228
UploadJob job = transferManager .uploadFiles (files , parallelUploadConfig );
214
229
List <UploadResult > uploadResults = job .getUploadResults ();
215
- assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .FAILED_TO_START );
230
+ assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .FAILED_TO_FINISH );
216
231
assertThat (uploadResults .get (0 ).getException ()).isInstanceOf (NoSuchFileException .class );
217
232
}
218
233
}
219
234
235
+ @ Test
236
+ public void uploadFailsSkipIfExists () throws Exception {
237
+ TransferManagerConfig config =
238
+ TransferManagerConfigTestingInstances .defaults (storage .getOptions ()).toBuilder ().build ();
239
+ String bucketName = bucket .getName ();
240
+ try (TransferManager transferManager = config .getService ();
241
+ TmpFile tmpFile = DataGenerator .base64Characters ().tempFile (baseDir , objectContentSize )) {
242
+ ParallelUploadConfig parallelUploadConfig =
243
+ ParallelUploadConfig .newBuilder ().setBucketName (bucketName ).setSkipIfExists (true ).build ();
244
+ UploadJob jobInitUpload =
245
+ transferManager .uploadFiles (ImmutableList .of (tmpFile .getPath ()), parallelUploadConfig );
246
+ List <UploadResult > uploadResults = jobInitUpload .getUploadResults ();
247
+ assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .SUCCESS );
248
+ UploadJob failedSecondUpload =
249
+ transferManager .uploadFiles (ImmutableList .of (tmpFile .getPath ()), parallelUploadConfig );
250
+ List <UploadResult > failedResult = failedSecondUpload .getUploadResults ();
251
+ assertThat (failedResult .get (0 ).getStatus ()).isEqualTo (TransferStatus .SKIPPED );
252
+ }
253
+ }
254
+
255
+ @ Test
256
+ public void uploadSkipIfExistsGenerationOverride () throws Exception {
257
+ TransferManagerConfig config =
258
+ TransferManagerConfigTestingInstances .defaults (storage .getOptions ()).toBuilder ().build ();
259
+ String bucketName = bucket .getName ();
260
+ try (TransferManager transferManager = config .getService ();
261
+ TmpFile tmpFile = DataGenerator .base64Characters ().tempFile (baseDir , objectContentSize )) {
262
+ ParallelUploadConfig parallelUploadConfig =
263
+ ParallelUploadConfig .newBuilder ()
264
+ .setBucketName (bucketName )
265
+ .setSkipIfExists (true )
266
+ .setWriteOptsPerRequest (ImmutableList .of (BlobWriteOption .generationMatch (5L )))
267
+ .build ();
268
+ assertThat (parallelUploadConfig .getWriteOptsPerRequest ()).hasSize (1 );
269
+ UploadJob jobInitUpload =
270
+ transferManager .uploadFiles (ImmutableList .of (tmpFile .getPath ()), parallelUploadConfig );
271
+ List <UploadResult > uploadResults = jobInitUpload .getUploadResults ();
272
+ assertThat (uploadResults .get (0 ).getStatus ()).isEqualTo (TransferStatus .SUCCESS );
273
+ UploadJob failedSecondUpload =
274
+ transferManager .uploadFiles (ImmutableList .of (tmpFile .getPath ()), parallelUploadConfig );
275
+ List <UploadResult > failedResult = failedSecondUpload .getUploadResults ();
276
+ assertThat (failedResult .get (0 ).getStatus ()).isEqualTo (TransferStatus .SKIPPED );
277
+ }
278
+ }
279
+
220
280
@ Test
221
281
public void downloadBlobs () throws Exception {
222
282
TransferManagerConfig config =
0 commit comments