我想以包含名称、描述和图片字段的形式将图像上载到AWS s3。
提交表单后,表格中将显示每个项目及其名称、描述和图像。
目前,我只知道如何将图像以自己的名称上传到AWS s3。我删除了一些代码,只留下相关的。
此外,如果我想散列项目名称以避免重复名称(项目id不同,自动递增),那么如何将图像从AWS s3 bucket获取到相应位置的表中?
import React, { Component } from 'react';
import S3 from 'aws-s3';
import { Form, Button, Col } from "react-bootstrap";
const config = {
bucketName: process.env.REACT_APP_BUCKET_NAME,
dirName: process.env.REACT_APP_DIR_NAME,
region: process.env.REACT_APP_REGION,
accessKeyId: process.env.REACT_APP_ACCESS_KEY_ID,
secretAccessKey: process.env.REACT_APP_SECRET_ACCESS_KEY,
}
const S3Client = new S3(config);
export default class Home extends Component {
state = {
selectedFile: null
};
onFileChange = event => {
this.setState({ selectedFile: event.target.files[0] });
};
changeItem = (key, value) => {
const { newItem, items } = this.props.itemState;
newItem[key] = value;
this.props.updateNewItem(items, newItem);
};
upload(e){
console.log(e.target.files[0]);
S3Client.uploadFile(this.state.selectedFile, this.state.selectedFile.name)
.then(data => console.log(data))
.catch(err => console.error(err))
}
render(){
return(
<div>
<h1> upload Item </h1>
<Form onSubmit={() => this.upload()}>
<Col>
<label>
Name:
<input type="text" value={newItem["item_name"]} onChange={(e) =>
this.changeItem("item_name", e.target.value)
}/>
</label>
</Col>
<Col>
<label>
Description:
<input type="text" value={newItem["item_description"]} onChange={(e) =>
this.changeItem("item_description", e.target.value) />
</label>
</Col>
<Col>
<label>
Image:
<input type="file" onChange={this.onFileChange}
/>
</label>
</Col>
<Button type="submit">Add </Button>
</Form>
</div>
)
}
}
以下是一些想法:
>
为每个上传的图像生成一个UUID,将对象存储在S3中,对象键设置为UUID(而不是哈希自动递增值**),将一个或多个项目写入DynamoDB,其中包含UUID和与它们相关的任何用户或实体相关联的原始文件名、描述
与上述类似,但将元数据(原始图像的文件名和描述)作为标签存储在上传的S3对象上,并将对象存储在前缀标识上传它们的用户或实体的文件夹下(以节省使用DynamoDB将用户/实体关联到图像)
**对于分布式环境来说,自动递增并不是一个很好的设计。
我在SQLite数据库中有一个图像作为BLOB类型,我想将该图像上传到firebase存储中,获取图像的下载URL和尺寸,并将它们添加到Firebase实时数据库中。我已使用 bucket.upload 从本地驱动器成功上传了图像,但我不知道如何上传 blob。 我在服务器端(NodeJS)使用admin-sdk,有一个“上传”功能,但那是在客户端sdk中。
问题内容: 如何从iPhone上的图片库以JSON格式将图片上传到服务器?我尝试了以下方法: 问题答案: 如果要以字符串形式上传图像,则必须将图像数据转换为Base64,然后可以使用上述方法: 要转换为base64字符串,请参阅此答案。然后,您可以使用您的代码进行上传。 其他方式 您可以像这样直接上传图片:
我想尝试下载图像点击按钮,但是当我点击按钮,所以不是下载图像,而是直接打开图像,但我想做下载图像,所以如何在reactjs下载图像?
问题内容: ls命令以以下格式打印时间: 我如何转换,从接收到的时间的这个格式的本地时间? 问题答案: 使用strftime(您需要先转换为): 格式: 这是完整的代码:
我从open API中获取的日期是。我想以以下方式格式化它。下面是我尝试的方法: 这将抛出一个错误,说明: 请注意,如果我从open api中提取的数据是,那么这个方法可以正常工作,并返回 请建议和劝告。