Ali Dowair
7ca8b85a57
feat(providers): expand PutBlob API to allow for idempotent puts ( #1654 )
...
* Add a new PutBlob option and blob error type
When `DoNotRecreate` is set as true, the blob put operation should
only succeed if no blob with the given blob ID already exists.
Othwerwise, `ErrBlobAlreadyExists` is returned.
* Validate default storage providers' support
By default, storage providers should not support idempotent creates.
This commit adds error handling to exit early if `DoNotRecreate` is
set to true. The commit also verifies this behavior in the provider
validation test.
* Implement support for new option in GCS storage
* Push PutBlob option handling down to Impl
When PutBlob options were introduced, error handling logic for them
was implemented for the Sharded storage interface. However, the
behavior of different providers that implement Sharded can be
different, so it's better to push the options down to be processed in
the provider implementations.
* Introduce new error type for unsupported put opts
To unify error handling code and make it more maintainable, introduce
a new error type `blob.ErrUnsupportedPutBlobOption`, which is to be
returned whenever a storage provider implementation is given put
options it does not support.
2022-01-27 08:49:06 -08:00
..
2022-01-25 21:21:13 -08:00
2021-08-02 21:08:54 -07:00
2021-09-28 15:19:02 -07:00
2021-06-16 19:44:55 -07:00
2021-05-03 10:28:00 -07:00
2021-05-03 10:28:00 -07:00
2021-05-06 20:26:35 -07:00
2021-05-03 10:28:00 -07:00
2021-10-18 21:39:00 -07:00
2021-08-20 08:45:10 -07:00
2021-09-28 15:19:02 -07:00
2021-10-06 08:39:10 -07:00
2021-05-03 10:28:00 -07:00
2021-05-11 22:26:28 -07:00
2021-05-11 22:26:28 -07:00
2021-08-02 21:08:54 -07:00
2021-11-16 06:02:04 -08:00
2022-01-25 21:21:13 -08:00
2021-09-19 18:50:38 -07:00
2021-09-08 18:44:03 -07:00
2021-08-20 08:45:10 -07:00
2021-06-16 19:44:55 -07:00
2021-09-19 18:50:38 -07:00
2021-06-16 19:44:55 -07:00
2021-12-03 15:35:01 -08:00
2021-09-08 18:44:03 -07:00
2021-12-03 15:35:01 -08:00
2021-09-08 18:44:03 -07:00
2021-05-15 12:12:34 -07:00
2021-05-03 10:28:00 -07:00
2021-05-11 22:26:28 -07:00
2021-05-22 05:35:27 -07:00
2021-05-03 10:28:00 -07:00
2021-05-15 12:12:34 -07:00
2021-05-11 22:26:28 -07:00
2021-06-16 19:44:55 -07:00
2021-10-06 08:39:10 -07:00
2021-08-27 04:22:18 -07:00
2021-05-03 10:28:00 -07:00
2021-05-15 12:12:34 -07:00
2021-07-06 21:38:08 -07:00
2021-07-06 21:38:08 -07:00
2021-09-08 18:44:03 -07:00
2021-10-17 18:35:21 -07:00
2021-07-06 21:38:08 -07:00
2021-05-15 12:12:34 -07:00
2021-05-23 22:18:31 -07:00
2021-07-06 21:38:08 -07:00
2021-06-05 08:48:43 -07:00
2021-06-05 08:48:43 -07:00
2021-10-22 15:35:09 -07:00
2021-09-28 15:19:02 -07:00
2021-11-06 23:08:00 -07:00
2021-06-05 08:48:43 -07:00
2022-01-25 21:21:13 -08:00
2021-09-10 17:51:55 -07:00
2021-10-22 15:35:09 -07:00
2021-08-02 21:08:54 -07:00
2021-06-05 08:48:43 -07:00
2021-05-03 10:28:00 -07:00
2021-05-11 22:26:28 -07:00
2021-05-06 20:26:35 -07:00
2021-05-11 22:26:28 -07:00
2021-05-03 10:28:00 -07:00
2021-05-15 12:12:34 -07:00
2022-01-25 21:21:13 -08:00
2021-05-06 20:26:35 -07:00
2021-05-03 10:28:00 -07:00
2021-11-11 17:03:11 -08:00
2021-11-06 10:06:05 -07:00
2021-05-03 10:28:00 -07:00
2021-11-06 10:06:05 -07:00
2021-11-06 10:06:05 -07:00
2021-11-06 10:06:05 -07:00
2021-05-03 10:28:00 -07:00
2021-11-06 10:06:05 -07:00
2021-11-06 10:06:05 -07:00
2022-01-25 21:21:13 -08:00
2021-11-27 18:14:45 -08:00
2021-05-03 10:28:00 -07:00
2021-09-08 18:44:03 -07:00
2021-07-17 07:58:02 -07:00
2021-11-16 06:02:04 -08:00
2021-05-11 21:53:36 -07:00
2022-01-15 12:54:56 -08:00
2022-01-22 08:37:00 -08:00
2021-05-11 21:53:36 -07:00
2022-01-15 12:54:56 -08:00
2021-07-15 11:32:55 -07:00
2021-09-10 22:51:51 -07:00
2022-01-15 12:54:56 -08:00
2021-11-05 10:18:03 -07:00
2022-01-15 12:54:56 -08:00
2022-01-27 08:49:06 -08:00
2021-11-11 17:03:11 -08:00
2022-01-25 21:21:13 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-03 18:48:38 -08:00
2022-01-25 21:21:13 -08:00
2022-01-03 18:48:38 -08:00
2022-01-25 21:21:13 -08:00
2022-01-03 18:48:38 -08:00
2021-05-06 20:26:35 -07:00
2021-05-03 10:28:00 -07:00
2021-09-28 15:19:02 -07:00
2021-05-03 10:28:00 -07:00
2022-01-25 21:21:13 -08:00
2021-10-17 09:46:44 -07:00
2021-11-06 10:06:05 -07:00
2021-05-17 21:47:11 -07:00
2021-05-15 12:12:34 -07:00
2021-05-03 10:28:00 -07:00
2022-01-25 21:21:13 -08:00
2021-10-21 22:12:06 -07:00
2021-11-20 20:53:25 -08:00
2021-11-20 20:53:25 -08:00
2021-05-03 10:28:00 -07:00
2022-01-25 21:21:13 -08:00
2021-11-20 20:53:25 -08:00
2021-05-06 20:26:35 -07:00
2021-05-03 10:28:00 -07:00
2021-05-06 20:26:35 -07:00
2021-05-06 20:26:35 -07:00
2021-05-03 10:28:00 -07:00
2021-11-03 21:57:37 -07:00
2021-11-11 17:03:11 -08:00
2021-05-06 20:26:35 -07:00
2021-08-20 08:45:10 -07:00
2021-05-11 21:53:36 -07:00
2021-10-01 22:56:50 -07:00
2021-09-14 19:11:39 -07:00
2021-05-11 21:53:36 -07:00
2021-11-16 06:02:04 -08:00
2021-08-20 08:45:10 -07:00
2022-01-25 21:21:13 -08:00
2021-09-14 19:11:39 -07:00
2021-03-18 23:03:27 -07:00
2021-11-16 07:39:26 -08:00
2021-11-16 07:39:26 -08:00
2021-11-16 07:39:26 -08:00
2021-11-16 07:39:26 -08:00
2022-01-15 12:54:56 -08:00
2021-11-16 07:39:26 -08:00
2021-11-16 07:39:26 -08:00
2021-11-16 06:02:04 -08:00
2021-11-16 07:39:26 -08:00
2021-11-16 07:39:26 -08:00
2021-09-08 18:44:03 -07:00
2021-11-11 17:03:11 -08:00