React native 创建react本机应用AWS S3 getObject使用文件
我的RN应用程序是使用create react本机应用程序创建的。现在我想显示我的aws s3 bucket的一些图像 因此,如果我将图像公开并使用以下内容显示它们,这将很好地工作: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,
<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库的一个很好的示例: