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

时间:2016-06-05 18:37:53

标签: google-app-engine google-cloud-storage

大家好,我实际上正在使用谷歌云平台,并且我将我的优惠券图像存储在gcs存储桶中。现在google提供任何api来从gcs存储桶中删除现有图像。我在其文档上搜索了很多google docs也见过很多博客,但每个人都做的是从数据库中删除数据,但没有人讲述如何从桶中删除图像。如果有人这样做,请帮助我,这真的很明显。

由于

2 个答案:

答案 0 :(得分:3)

不确定

  1. 通过控制台,您可以this方式使用gsutil命令。你应该install gsutil命令。
  2. 通过api休息,您可以使用this服务。你可以尝试这个api here
  3. 还有pythonjavaother languajes的图书馆。
  4. 来自@MikeSchwartz的建议。使用云控制台,您可以手动管理对象。 Link
  5. 更新2:NodeJS上的示例

    我们可以选择三个选项。 Using request moduleGoogle cloud NodeJS clientGoogle API NodeJS client。但首先,您应该授权您的服务器向Google云端存储(GCS)发出请求。要做到这一点:

    • 打开Console Credentials page
    • 如果尚未选择,请选择您要为其创建凭据的项目。
    • 点击创建凭据,然后选择服务帐户密钥
    • 在下拉列表中选择计算引擎默认服务帐户。然后点击创建。将下载Json文件。
    • 在左侧面板中,单击概述,然后在取景器中键入云存储。
    • 点击Google云端存储,确保此API已启用
    • 将下载的json重命名为keyfile.json,并将其放入NodeJS代码的可访问路径中。

    1)Google云端NodeJS客户端。 Here官方存储库,包含大量样本。

    var fs = require('fs');
    var gcloud = require('gcloud');
    
    var gcs = gcloud.storage({
      projectId: 'your-project',
      keyFilename: '/path/to/keyfile.json'
    });
    var bucket = gcs.bucket('your-bucket');
    var file = bucket.file('your-file');
    file.delete(function(err, apiResponse) {}):
    

    2)使用请求模块。

    npm install request
    

    然后在你的代码中:

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

    3)使用Google API NodeJS:我不知道如何使用它,但有很多例子here

答案 1 :(得分:0)

假设您拥有图片文件的公共网址,则可以这样

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

});

在此链接https://cloud.google.com/storage/docs/deleting-objects或github https://github.com/googleapis/nodejs-storage/blob/master/samples/files.js上的代码示例下检查Google的官方文档