Просмотр исходного кода

Merge pull request #4800 from overleaf/jpa-object-persistor-fix-404-handling

[object-persistor] handle 404s of the entire delete operation in gcs

GitOrigin-RevId: 41c5e70af069361a21adb53a6166081741666887
Jakob Ackermann 5 лет назад
Родитель
Сommit
5679ba894b

+ 1 - 1
libraries/object-persistor/package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "@overleaf/object-persistor",
-  "version": "1.0.0",
+  "version": "1.0.1",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {

+ 1 - 1
libraries/object-persistor/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@overleaf/object-persistor",
-  "version": "1.0.0",
+  "version": "1.0.1",
   "description": "Module for storing objects in multiple backends, with fallback on 404 to assist migration between them",
   "main": "index.js",
   "scripts": {

+ 5 - 8
libraries/object-persistor/src/GcsPersistor.js

@@ -200,15 +200,12 @@ module.exports = class GcsPersistor extends AbstractPersistor {
       if (this.settings.unlockBeforeDelete) {
         await file.setMetadata({ eventBasedHold: false })
       }
-      try {
-        await file.delete()
-      } catch (err) {
-        // ignore 404s: it's fine if the file doesn't exist.
-        if (err.code !== 404) {
-          throw err
-        }
-      }
+      await file.delete()
     } catch (err) {
+      // ignore 404s: it's fine if the file doesn't exist.
+      if (err.code === 404) {
+        return
+      }
       throw PersistorHelper.wrapError(
         err,
         'error deleting GCS object',