Указание имени корзины в loopback-компонент-хранилище для S3

Я столкнулся с препятствиями, используя хранилище loopback-component-storage с Amazon S3. В качестве теста я пытаюсь загрузить файл на S3 из моего приложения браузера, которое вызывает мой loopback API на сервере.

Мой серверный конфиг для datasources.json выглядит так:

  "s3storage": {
    "name": "s3storage",
    "connector": "loopback-component-storage",
    "provider": "amazon",
    "key": “blahblah”,
    "keyId": “blahblah”
  },

Моя конечная точка API: '/api/Storage'

Ответ об ошибке, который я получаю от API, выглядит следующим образом:

.   error: {name: "MissingRequiredParameter", status: 500, message: "Missing required key 'Bucket' in params",…}
.   code: "MissingRequiredParameter"
.   message: "Missing required key 'Bucket' in params"
.   name: "MissingRequiredParameter"
.   stack: "MissingRequiredParameter: Missing required key 'Bucket' in params …”
.   status: 500
.   time: "2015-03-18T01:54:48.267Z"

Как передать параметр {"params": {"Bucket": "bucket-name"}} в мой REST API loopback?

Пожалуйста посоветуй. Большое спасибо!

2 ответа

Решение

Контейнеры AFAIK известны как контейнеры в мире https://github.com/strongloop/loopback-component-storage или pkgcloud.

Вы можете указать контейнер в ваших параметрах URL. Если ваша цель /api/Storage тогда вы укажете свой контейнер в этом пути с чем-то вроде /api/Storage/container1/upload как формат PATH/:DATASOURCE/:CONTAINER/:ACTION,

Посмотрите на тесты здесь для большего количества примеров: https://github.com/strongloop/loopback-component-storage/blob/4e4a8f44be01e4bc1c30019303997e61491141d4/test/upload-download.test.js#L157

Облом. "контейнер" в основном переводится как "ведро" для S3. Я пытался передать объект params через POST, но дьявол был в деталях, т.е. путь HTTP POST для загрузки искал корзину / контейнер в самом пути. / api / Storage / abc / upload означало, что "abc" был контейнером.

Другие вопросы по тегам