React Native AWS S3 загрузить - PullRequest
1 голос
/ 23 апреля 2020

Я использую response-native-image-picker и act-native-s3-upload для загрузки изображений в корзину s3.

 RNS3.put(file, AWSOptions)
    .then((response) => {
        if (response.status !== 201) {
           throw new Error('Failed to upload image to S3');
         }
    })
    .catch(function (error) {
         console.log('Error', JSON.stringify(error));
         throw error;
    });

и я получаю ответ, как это без загруженного изображения.

Object {
  "headers": Object {},
  "status": 0,
  "text": "Stream Closed",
}

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

У меня точно такая же проблема с аналогичной библиотекой под названиемact-native-aws3. Похоже, это связано с новой версией React Native 0.62.2, потому что я пытался обновить сегодня (моя предыдущая версия была 0.61.5), и эта библиотека работала раньше.

Я не знаю, обе ли библиотеки используйте общий API, который сейчас не работает в новом RN, но я предлагаю вам понизить рейтинг.

1 голос
/ 25 апреля 2020

Я нашел альтернативный модуль (aws -sdk ) для загрузки файлов в корзину S3 с версией RN 62.

Также я использовал base64-arraybuffer Модули и Reaction-native-FS хорошо.

const s3bucket = new S3({
      accessKeyId: XXXXXXXXXX,
      secretAccessKey: XXXXXXXXXXXX,
      Bucket: XXXXXXXXX,
      signatureVersion: 'v4',
    });
    let contentType = 'image/jpeg';
    let contentDeposition = 'inline;filename="' + file.name + '"';

    const base64 = await fs.readFile(file.uri, 'base64');

    const arrayBuffer = decode(base64);

    s3bucket.createBucket(() => {
      const params = {
        Bucket: XXXXXXXXXXX,
        Key: file.name,
        Body: arrayBuffer,
        ContentDisposition: contentDeposition,
        ContentType: contentType,
      };
      s3bucket.upload(params, (err, data) => {
        if (err) {
          console.log('error in callback');
          console.log(err);
          setSpinner(false);
        }
        console.log('success');
        console.log(data.Location);
        setImageUrl(data.Location);
        setSpinner(false);
      });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...