Nano Hash - криптовалюты, майнинг, программирование

Проблема с хранилищем GCP

Пытаюсь понять, что на самом деле означает эта ошибка, но она говорит Anonymous caller does not have storage.objects.get access to..., когда я пытаюсь получить fileData из файла ведра.

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

Возможно, вам нужно явно аутентифицироваться в запросе. Этот поток SO выглядит связанным.

Дайте нам знать, как сработала явная аутентификация!

09.03.2018
  • Сделал по другому, но по сути да. 10.03.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..