OVH Object Storage, ничего не происходит, когда я пытаюсь загрузить большой файл (более 100 Ко) - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь загрузить файлы в хранилище объектов OVH. Но у меня есть три различных поведения в соответствии с тяжелым файлом.

  • С файлом веса, который меньше 100Ко, все в порядке

  • С Вес файла, который больше, чем 100Ko, у меня есть эта ошибка: Error: write after end, но файл загружается в ovh хранилище объектов

  • С файлом веса, который больше, чем 250Ko, ничего не происходит, и файл не загружен. Fs ReadStream открыт, но поток записи по каналу (с потоком чтения) не окончен sh.

Это мой код:

  var client = require('pkgcloud').storage.createClient({
    provider: 'openstack',
    username: myusername,
    password: mypassword,
    region: 'GRA',
    authUrl: 'https://auth.cloud.ovh.net/'
  });

  const fsReadStream = fs.createReadStream(path.resolve(__dirname, fileLocation))

  let writeStream = client.upload({
    container: myOvhStorageContainer,
    remote: 'fileName.jpg',
  });

  writeStream.on('error', function (err) {

    console.log(err)
  });

  writeStream.on('success', async function (file) {
    console.log(file)
  });

  fsReadStream.on('open', function () {
    console.log('open!!')

    fsReadStream.pipe(writeStream);
  });

1 Ответ

1 голос
/ 21 марта 2020

Проблема возникает из-за ошибки в pkgcloud в том, как она передает файлы для OpenStack Storage.

Решение раскрыто, и предлагается исправление, в https://github.com/pkgcloud/pkgcloud/pull/673

Существуют вилки pkgcloud , которые включают предлагаемое исправление, и их можно использовать в ожидании официального принятия исправления:

Чтобы использовать такой репозиторий в своем проекте / приложении, отредактируйте свой package.json для измените dependencies следующим образом:

"dependencies": {
    …
    "pkgcloud": "https://github.com/madarche/pkgcloud.git#fe2701eb6eb984e3d067d5df7610ca0751528dbd",
    …
  },

Вы также можете просто создать свой собственный форк pkgclould, чтобы вам не пришлось доверять случайному Git репозиторию.

...