Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete gcp bucket objects using s3 api

My code to delete the objects look like this:


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)
}

value of assetsToDelete is

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

But I'm getting an error:

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
}

The above configuration works fine for upload and listing objects. I'm trying to delete from a gcp bucket.

like image 457
Vikas Kundu Avatar asked Nov 16 '25 00:11

Vikas Kundu


1 Answers

As of posting, Google Cloud Storage doesn't support Multi-object Delete.

That said, you can delete individual objects. If you would like to track the addition of this, you can view https://issuetracker.google.com/issues/162653700

Additionally, cloud.google.com/storage/docs/migrating#methods-comparison may be helpful in comparing the two surfaces and making calls as you continue on your migration from S3 to Google Cloud Storage

like image 185
Chris Wilcox Avatar answered Nov 17 '25 19:11

Chris Wilcox



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!