GCP存储问题

时间:2018-03-09 20:11:55

标签: javascript google-cloud-storage

试图绕过这个错误的真正含义,但当我尝试从存储桶文件中获取fileData时,它会说Anonymous caller does not have storage.objects.get access to...

app.get('/api/videos', (req, res) => {
  const storageBucket = storageClient.bucket(config.video_bucket);
  storageBucket.getFiles(function(err, files) {
    if (!err) {
      let fileArray = [];

      files.forEach(function(file) {
        const videoAnnotationBucket = storageClient.bucket(config.video_json_bucket);
        const videoAnnotationFilename = (file.metadata.name).replace('/', '').replace('.', '') + '.json';
        const annotationFile = videoAnnotationBucket.file(videoAnnotationFilename);

        // GET ANNONATIONS FOR EACH FILE
        annotationFile.get(function(error, fileData) {
          if (error) {
            console.log('error getting file', error);
          }
          else {
            const remoteJsonUrl = fileData.metadata.mediaLink;
            // console.log(fileData.metadata);

            request({
              url: remoteJsonUrl,
              json: true
            },
            function(jsonReadErr, jsonResp, body) {
              console.log('logging body:');
              console.log(body);

错误发生在回调上,我通过console.log(body)读取错误,这会给我上面提到的错误消息。

奇怪的是,当我gcloud auth login以及我在宣布storageBucket这样做时,我说我是匿名的。 :

const storageClient = storage({
  credentials: {
    "client_email": "clientEmail",
    "private_key": "privateKey",
  },
  projectId: "projectId"
});

所以就在酒吧旁边,为了避免任何"你设置了这个"问题,不,我实际上没有提供这些值,我省略了实际值,我们在其他地方使用它们,所以我知道它们是正确的。

我的问题是,Anonymous caller是什么意思?我该如何解决?当我做所有(看似)必要的事情来使用API​​时,它是如何认为我是匿名的?

1 个答案:

答案 0 :(得分:1)

您可能需要在请求中明确进行身份验证。 This SO thread看起来很相关。

让我们知道如何明确地进行身份验证!