Загрузить изображение с URL-адреса BLOB-объекта в корзину S3 - PullRequest
0 голосов
/ 21 января 2019

Я получаю URL-адрес блоба из обещания Пример . Теперь я хочу сохранить это в s3 с aws-amplify. Так как это URL-адрес BLOB-объекта, как я должен передать это в корзину S3? Ниже мой код

handleSaveImage = (imageUrl) => {
    const imageName = this.getImageName(this.imageRef.src);
    Storage.put(fileName, imageUrl, {
      contentType: contentTypes.IMAGE,
      level: 'private'
    })
      .then(({ key }) => {
        //console.log(key);
        this.setState({ croppedImageUrl: imageUrl });
        //onImageUpload(key);
      })
      .catch(() => {
        console.log('some error occured');
      });
  };

  getImageName = (url) => {
    console.log(url.split('/')[5].split('?')[0]);
    return url.split('/')[5].split('?')[0];
  };

Кроме того, URL-адрес BLOB-объекта выглядит так: blob:https://fiddle.jshell.net/a0d3d404-e9e3-464d-92eb-5849d1404c08

1 Ответ

0 голосов
/ 24 января 2019

Как насчет того, чтобы получить блоб, преобразовать его в объект файла и загрузить в S3. Что касается получения блоба, вы можете попробовать этот rn-fetch-blob . Тогда конвертация будет достаточно простой.

const file = new File([fetchedBlob], "filename");
...