试图绕过这个错误的真正含义,但当我尝试从存储桶文件中获取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时,它是如何认为我是匿名的?