Мой код для удаления объектов выглядит так:


const s3 = new AWS.S3({
    endpoint: spaceEndpoint,
    accessKeyId,
    secretAccessKey,
})

const params = {
    Bucket: bucketName,
    Delete: {
        Objects: assetsToDelete,
    },
}
try {
    const res1 = await s3.deleteObjects(params).promise()
}catch(e){
    console.log(e)
}

Стоимость assetsToDelete составляет

  {
    Key: 'userId/folderName/object1'
  },
  {
    Key: 'userId/folderName/object2'
  }
]

Но я получаю сообщение об ошибке:

InvalidArgument: Invalid argument.
   ErrorSTACK {
  code: 'InvalidArgument',
  region: null,
  time: 2021-02-12T20:30:42.055Z,
  requestId: null,
  extendedRequestId: undefined,
  cfId: undefined,
  statusCode: 400,
  retryable: false,
  retryDelay: 81.1455003388468
}

Приведенная выше конфигурация отлично подходит для загрузки и перечисления объектов. Я пытаюсь удалить из ведра gcp.

2
Vikas Kundu 12 Фев 2021 в 23:39

1 ответ

Лучший ответ

На момент публикации Google Cloud Storage не поддерживает удаление нескольких объектов.

Тем не менее, вы можете удалять отдельные объекты. Если вы хотите отслеживать добавление этого, вы можете просмотреть https://issuetracker.google.com/ issues / 162653700

Кроме того, cloud.google.com/storage/docs/migrating#methods-comparison может оказаться полезным при сравнении двух поверхностей и совершении звонков, когда вы продолжите переход с S3 на Google Cloud Storage.

1
Chris Wilcox 18 Фев 2021 в 03:01