api 用于从 google 云存储桶中删除图像

api for deleting image from google cloud storage buckets

大家好,实际上我正在使用 google 云平台,我将我的优惠券图像存储在 gcs 存储桶中。现在 google 提供任何 api 以从 gcs 存储桶中删除现有图像。我在它的文档上搜索了很多 google docs 也看过很多博客,但每个人所做的都是从数据库中删除数据,但没有人告诉我们如何从存储桶中删除图像。如果有人这样做过,请帮助我,这将非常值得赞赏。

谢谢

当然可以。

  1. 通过控制台,您可以在 this way. You just should install gsutil 命令中使用 gsutil 命令。
  2. 通过 api 休息你可以使用 this service. You can try this api here.
  3. 还有 python, java or other languajes 的库。
  4. 来自@MikeSchwartz 的建议。使用云控制台,您可以手动管理您的对象。 Link.

更新 2:NodeJS 上的示例

我们可以在三个选项中进行选择。 Using request module, Google cloud NodeJS client or Google API NodeJS client。但首先,您应该授权您的服务器向 Google 云存储 (GCS) 发出请求。为此:

  • 打开Console Credentials page
  • 如果尚未 selected,select 您正在为其创建凭据的项目。
  • 点击创建凭据 并选择服务帐户密钥
  • 在下拉列表中 select Compute Engine 默认服务帐户。然后点击创建。将下载 Json 个文件。
  • 在左侧面板中单击 概览 并在查找器中键入云存储。
  • 单击 Google 云存储并确保此 api 已 启用
  • 将下载的 json 重命名为 keyfile.json 并将其放在您的 NodeJS 代码可访问的路径中。
  1. Google 云 NodeJS 客户端。 Here 包含大量示例的官方存储库。

    var fs = require('fs'); var gcloud = require('gcloud');

    var gcs = gcloud.storage({ 项目编号:'your-project', keyFilename: '/path/to/keyfile.json' }); var bucket = gcs.bucket('your-bucket'); var 文件 = bucket.file('your-file'); file.delete(函数(错误,api响应){}):

  2. 使用请求模块。

    npm 安装请求

然后在你的代码中:

var request = require('request');

request({
  url: 'https://www.googleapis.com/storage/v1/b/your-bucket/o/your-file',
  qs: {key: 'your-private-key'}, // you can find your private-key in your keyfile.json
  method: 'DELETE'
}, function(error, response, body){});
  1. 使用Google API NodeJS:我不知道如何使用它,但是有很多例子here

假设您有图像文件 public url,您可以这样做

    import {Storage} from "@google-cloud/storage";
     const storage = new Storage({
        projectId: GCLOUD_PROJECT,
        keyFilename: 'keyfile.json'
   });

   const bucket = storage.bucket(GCLOUD_BUCKET);
   //var image_file="https://storage.googleapis.com/{bucketname}/parentfolder/childfolder/filename

var image_file="https://storage.googleapis.com/1533406597315/5be45c0b8c4ccd001b3567e9/1542186701528/depositphotos_173658708-stock-photo-hotel-room.jpg";

    new Promise((resolve, reject) => {
    var imageurl = image_file.split("/");
    imageurl = imageurl.slice(4, imageurl.length + 1).join("/");

    //imageurl=parentfolder/childfolder/filename
    storage
        .bucket(GCLOUD_BUCKET)
        .file(imageurl)
        .delete()
        .then((image) => {
            resolve(image)
        })
        .catch((e) => {
            reject(e)
        });

});

查看此 link https://cloud.google.com/storage/docs/deleting-objects or github https://github.com/googleapis/nodejs-storage/blob/master/samples/files.js

中代码示例下的 googles 官方文档