React native 创建react本机应用AWS S3 getObject使用文件

React native 创建react本机应用AWS S3 getObject使用文件,react-native,amazon-s3,aws-sdk,create-react-native-app,aws-amplify,React Native,Amazon S3,Aws Sdk,Create React Native App,Aws Amplify,我的RN应用程序是使用create react本机应用程序创建的。现在我想显示我的aws s3 bucket的一些图像 因此,如果我将图像公开并使用以下内容显示它们,这将很好地工作: <Image source={props.pic_url} /> 输出: Object { "AcceptRanges": "bytes", "Body": Object { "data": Array [ 71, 73, 70, 56,

我的RN应用程序是使用create react本机应用程序创建的。现在我想显示我的aws s3 bucket的一些图像

因此,如果我将图像公开并使用以下内容显示它们,这将很好地工作:

<Image source={props.pic_url} />
输出:

Object {
  "AcceptRanges": "bytes",
  "Body": Object {
    "data": Array [
      71,
      73,
      70,
      56,
      .
      .
      .
      59,
    ],
    "type": "Buffer",
  },
  "ContentLength": 45212,
  "ContentType": "image/jpeg",
  "ETag": "\"c90bf3bb902711c8b1386937341ca9ec\"",
  "LastModified": 2017-09-13T12:40:35.000Z,
  "Metadata": Object {},
}
这很好,但我不想将数据作为控制台获取。log我想将它们显示为图像。如何使用CreateReact本机应用程序实现这一点


我尝试了react-native fs,但在创建react-native应用程序时不起作用。我没有对此进行测试,但我确实编译了一些适用于您的信息。请尝试一下,看看它是否对你有用

首先,您将从S3接收一个数组缓冲区。您可以将此arrayBuffer转换为buffer,然后将此buffer转换为Base64字符串,该字符串可用作图像组件的源

我想你可以用这个图书馆来做这个

const buffer = Buffer.from(arrayBuffer); //returned data 
const base64ImageData = buffer.toString('base64');
const imgSrc = "data:image/png;base64," + base64ImageData;
<Image source={{uri: imgSrc, scale: 1}} style={{ height: 80, width: 80}}/>
const buffer=buffer.from(arrayBuffer)//返回数据
const base64ImageData=buffer.toString('base64');
const imgSrc=“数据:图像/png;base64,”+base64ImageData;

我没有测试这一点,但我确实编译了一些对您有用的信息。请尝试一下,看看它是否对你有用

首先,您将从S3接收一个数组缓冲区。您可以将此arrayBuffer转换为buffer,然后将此buffer转换为Base64字符串,该字符串可用作图像组件的源

我想你可以用这个图书馆来做这个

const buffer = Buffer.from(arrayBuffer); //returned data 
const base64ImageData = buffer.toString('base64');
const imgSrc = "data:image/png;base64," + base64ImageData;
<Image source={{uri: imgSrc, scale: 1}} style={{ height: 80, width: 80}}/>
const buffer=buffer.from(arrayBuffer)//返回数据
const base64ImageData=buffer.toString('base64');
const imgSrc=“数据:图像/png;base64,”+base64ImageData;

在AWS Amplify library的存储模块中,有一些组件可以更方便地从S3上传/下载/渲染图像:

AWS Amplify的React本机扩展可通过npm获得:

npm install -g @aws-amplify/cli
从那里,您将需要配置您的项目。此处提供了最新的说明:

对于您的用例,您可以使用
S3Album

import { S3Album } from 'aws-amplify-react';

render() {
    const path = // path of the list;
    return <S3Album path={path} />
从“aws amplify react”导入{S3Album};
render(){
const path=//列表的路径;
回来

在AWS Amplify library的存储模块中,有一些组件可以更方便地从S3上传/下载/渲染图像:

AWS Amplify的React本机扩展可通过npm获得:

npm install -g @aws-amplify/cli
您需要在此处配置项目。此处提供最新说明:

对于您的用例,您可以使用
S3Album

import { S3Album } from 'aws-amplify-react';

render() {
    const path = // path of the list;
    return <S3Album path={path} />
从“aws amplify react”导入{S3Album};
render(){
const path=//列表的路径;
回来

欢迎链接到解决方案,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后引用您链接到的页面最相关的部分,以防目标页面不可用。这里可以找到利用amplify库的一个很好的示例:链接到欢迎提供解决方案,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后在目标页面不可用的情况下引用您链接到的页面最相关的部分。可以在此处找到利用amplify库的一个很好的示例: