2016-10-05 3 views
0
내가 nodeJS와 공공 버킷 만드는 오전

에 여전히 액세스입니다합니다 (ES5/ES6 믹스 사과를 복사, 구글의 예는 ES5했다) :Google 저장 용량 버킷은 공공 및 파일

그러나 액세스하는 데 문제
var gcloud = require('google-cloud'); 

const gcs = gcloud.storage({ 
     projectId: 'h-212f6', 
     keyFilename: './h-9a814129651f4.json' 
}); 

const createBucket = (bucketName) => { 
    // Create a new bucket. 

    return new Promise((resolve, reject) => { 

    gcs.createBucket(bucketName, function (err, bucket) { 
     if (err) { 
      reject(err); 
     } 

     bucket.acl.add({ 
      entity: 'allUsers', 
      role: gcloud.storage.acl.READER_ROLE 
     }, function(err, aclObject) { 
      console.log('err -> ', err); 
     }); 

     resolve(bucket); 
    }); 

    }); 
}; 

const upload = (bucket, filepath, options) => { 

    return new Promise((resolve, reject) => { 

     bucket.upload(filepath, options, function (err, file) { 

      if (err) { 
       reject(err); 
      } 

      resolve(file) 
     }); 
    }); 
}; 

크롬에서 파일 :

chrome error

UPDATE :

그것은

const upload = (bucket, filepath, options) => { 

    return new Promise((resolve, reject) => { 

     bucket.upload(filepath, options, function (err, file) { 

      if (err) { 
       reject(err); 
      } 

      file.acl.add({ 
       entity: 'allUsers', 
       role: gcs.acl.READER_ROLE 
      }, function (err, aclObject) { 

       console.log('err -> ', err); 

      }); 

      resolve(file) 
     }); 
    }); 
}; 

는 그러나, 나는 버킷 ACL을 변경하면 충분해야한다는 가정하에 있었다되지 않은 : 나는 파일의 ACL을 변경하면

모두 작동하는 것 같다?

+0

이 코드를 어디서 실행하는지 더 알려줄 수 있습니까? 어떤 작업이 401을 구체적으로 반환합니까? 5 번 줄의 상대 경로가 올바르게 작동하지 않을 수 있습니까? –

+0

그래. 로컬에서 실행하고 크롬에서 반환 된 URL로 이동할 때 오류가 발생합니다. – Guy

답변

3

위의 코드에서 ACL을 설정할 때 기존 개체에 대해 ACL을 설정합니다. 새 개체에 대한 기본 ACL로 설정하려면, 너무, 다음을 수행해야합니다

bucket.acl.default.add({ 
    entity: 'allUsers', 
    role: gcloud.storage.acl.READER_ROLE 
}, function(err, aclObject) { 
    console.log('err -> ', err); 
}); 

더 많은 예제 here를 참조하십시오.

관련 문제