Не удалось получить количество файлов или список из корзины AWS S3 с помощью javascript

#javascript #amazon-web-services #amazon-s3 #cypress

#javascript #amazon-web-services #amazon-s3 #cypress

Вопрос:

Я использую Cypress test, и одна из проверок — получить количество файлов в корзине S3. Но я не могу получить количество файлов в корзине S3.

Ниже приведен код Cypress.

 describe('Validate api field validation', () => {
  
  it('Verify objects land in correct AWS S3 bucket', () => {
    var date = new Date();
    var bucketDirectory = date.getUTCFullYear()
    var bucketLocation = Cypress.env('aws_bucketLocation')
    cy.log(bucketDirectory)
    try{
      var ss=getCountOfFiles(bucketLocation,bucketDirectory)
    }
    catch(err){
      cy.log(err)
    }
    cy.log(ss)
  })
}
  

И ниже приведена функция, которую я использую для получения количества файлов в корзине S3.

  const AWS = require("aws-sdk");
const fs = require("fs");
  
  AWS.config.update({
    accessKeyId: 'xxxxx',
    secretAccessKey: 'yyyyyyy',
    region: 'abide',
  });
const getCountOfFiles = async (bucketname, prefix) => {
    try {
      cy.log(bucketname)
      cy.log(prefix)
      const data = await s3.listObjectsV2({
        Bucket: bucketname,
        Prefix: prefix, // Limcits response to keys that begin with specified prefix
      }).promise().then(mydata => {
        return mydata;
      })
      cy.log('---------')
      if (data.$response.error) {
        throw new Error('Could not list files in S3: ${data.$response.error}');
      }
      return data;
    } catch {e} {
      cy.log(e.message)
      //throw new Error('Could not list files in S3: ${e.message}');
    }
  };
  

Я пытаюсь распечатать то, что происходит в журнале, но даже я не могу поймать исключение. Я не уверен, где я ошибаюсь.
Все данные идеальны. Это то, что я делаю глупо.
Каталог существует в AWS. Даже если он не существует или что-то не так во входных данных, почему не выводится исключение??
Может кто-нибудь, пожалуйста, помогите мне здесь. Является ли это ограничением Cypress??

Комментарии:

1. Можете ли вы добавить выходные данные журнала, которые вы получаете? Кроме того, getCountOfFiles is async , поэтому он возвращает обещание

2. Большое спасибо JessefSpecialisterren. Здесь нет вывода. Тест cypress зеленого цвета, что указывает на то, что все хорошо. Имя и префикс корзины S3 печатаются и на этом заканчиваются.

3. Я имею в виду, console.log (ss) ничего не печатает. Просто пробел

4. Какой вывод на консоль вы получите, если замените var ss строку на getCountOfFiles(bucketLocation,bucketDirectory).then(data => console.log("Data: ", data))

5. @JessefSpecialisterren — просто {}