我正试图通过React将文件上载到s3存储桶,我正在与4xx和5xx进行斗争:(
下面是我的代码库:
onChangeHandler = event => {
const data = new FormData();
data.append('data', event.target.files[0], event.target.files[0].name);
axios
.post(
'/api/attachments/temporary',
{
documents: data,
tempDir: this.generateUuid()
},
{
headers: {
'Content-Type': 'multipart/form-data'
}
}
)
.then(data => {
console.log(`data --- `, data);
})
.catch(e => {
console.log(` --- `, e);
});
};
render() {
return (
<input type='file' name='file' onChange={this.onChangeHandler} />
);
}
如果我发了这篇文章,我会得到500英镑,而这个错误是:
java.io.IOException:UT000036:解析多部分数据时连接终止
我还注意到documents属性为空:
这是后端的API文档:
谢谢!
如果您使用multiparthtpservletrequest
步骤1:添加依赖项
pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
第2步:发送与上面发送的文件相同的文件。
步骤3:在配置文件中配置bean(我使用了基于java的配置)
@Bean(name = "multipartResolver")
public CommonsMultipartResolver createMultipartResolver() {
CommonsMultipartResolver resolver=new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
return resolver;
}
步骤4:
@RequestMapping(value="/api/attachments/temporary")
public ServiceResponse uploadFile(MultipartHttpServletRequest request){
if (request.getFileNames().hasNext()) {
//1. get the files from the request object
Iterator<String> itr = request.getFileNames();
MultipartFile multipartFileImage = request.getFile(itr.next());
StringBuilder sb=new StringBuilder(multipartFileImage.getOriginalFilename());
String filename=sb.substring(sb.lastIndexOf("."), sb.length()); // getting file extension
filename="("+email+")"+filename; // concatenation unique value i.e email to its file name with extension
user.setProfileImage(filename);
try {
File saveImage = new File(imagePath+filename); //Local path for image file
PropertiesCredentials cred = new PropertiesCredentials(getClass().getClassLoader().getResourceAsStream(awsCredentialsProperties));
logger.debug("Aws access key id :"+cred.getAWSAccessKeyId());
logger.debug("Aws Secret key :"+cred.getAWSSecretKey());
AWSCredentials credentials = new BasicAWSCredentials(cred.getAWSAccessKeyId(),
cred.getAWSSecretKey()
);
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(#) // Your region
.build();
PutObjectResult putResult = s3client.putObject(
"<bucket name>",
filename,
saveImage
);
multipartFileImage.transferTo(saveImage);
logger.debug("putResult :"+putResult.getVersionId());
}catch(Exception e) {
return ServiceResponse.createFailureResponse("Unable to upload image due to internet connection failure. Try again later.");
}
}
我一直在尝试将文件上传到s3存储桶。但该文件从未公开供查看。我必须手动将bucket中的文件/文件夹公开(每次上传时),以便查看。 有没有一种方法可以上传一个Android文件(位图),该文件的默认权限是在运行期间公开查看。如果可能的话,我更愿意通过编程来实现这一点。我查看了s3文档,没有找到任何有用的东西。
AWS Java SDK 2.15.73(当前最新版本)。Java 1.8.222操作系统IBM AIX 7.1 开发一个将文件上传到S3 bucket的应用程序。 在Maven pom文件中: Stacktrace的开始: 异常在sendFileToAWSNoAuth=无法马歇尔请求JSON: BasUri不得为空。software.amazon.awssdk.core.exception.Sd
我在后端使用spring-boot 2.0.4,在前端使用vue 2.5.16 / axios 0.18.0,我希望将PDF文件上传到后端数据库,并从前端检索它们。 最初,我的灵感来自于spring部分的这个例子:https://grokonez . com/frontend/angular/angular-6/angular-6-client-upload-files-download-file
我想使用S3托管通过Kotlin Spring Boot应用程序上载的文件。我按照说明使用了各种其他文档,并尝试了一些解决stackoverflow上类似问题的方法。我总是收到403错误。如何设置S3和IAM以便上载文件?我如何找出问题所在?任何帮助都将不胜感激。 我已经激活了访问日志记录,这需要很长时间,而且还没有对我有太大帮助,特别是因为生成日志需要45分钟。忽略状态为200的响应,日志中会出
目前我正在做一个项目,我试图上传一个图像从反应前端到Spring启动后端。我能够成功上传我的图像,并将其存储在我的“目标/类/静态/公共/资产”文件夹中。我还将路径存储在我的数据库中,即“/public/资产/image_name.jpg”。构建“. jar”文件后,当我尝试访问图像时,它会给我这个错误消息。但是我能够访问我存储在“/资源/静态/”文件夹中的那些图像。 我知道这是一个配置问题。但我
如果有人帮我解决这个问题,我会非常感激。 我正在为我的项目使用codeigniter框架。并想将我的图像上传到amazon s3桶中。当我尝试使用S3.php文件时 string(92)“不支持您提供的授权机制。请使用AWS4-HMAC-SHA256。” 有人能帮我解决这个问题吗。