相关疑难解决方法(0)

如何生成MD5哈希?

是否有任何方法可以在Java中生成字符串的MD5哈希?

java hash md5 hashcode

977
推荐指数
27
解决办法
99万
查看次数

AmazonClientException:数据读取的长度与预期的不同

1.当我使用AmazonS3Client在亚马逊s3文件存储上传文件时.2.当我尝试一次上传多个文件时,它会提供异常:但是同一个文件有多个线程.我尝试了客户端配置,例如:1.connectionTimeout = 50000 in ms 2.maxConnections = 500 3.socketTimeout = 50000 in ms

Exception stacktrace:
com.amazonaws.AmazonClientException: Data read has a different length than the expected: dataLength=8192; expectedLength=79352; includeSkipped=false; in.getClass()=class com.amazonaws.internal.ResettableInputStream; markedSupported=true; marked=0; resetSinceLastMarked=false; markCount=1; resetCount=0
                    at com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:150)
                    at com.amazonaws.util.LengthCheckInputStream.read(LengthCheckInputStream.java:110)
                    at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:73)
                    at com.amazonaws.event.ProgressInputStream.read(ProgressInputStream.java:151)
                    at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:73)
                    at org.apache.http.entity.InputStreamEntity.writeTo(InputStreamEntity.java:98)
                    at com.amazonaws.http.RepeatableInputStreamRequestEntity.writeTo(RepeatableInputStreamRequestEntity.java:153)
                    at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:98)
                    at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108)
                    at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:122)
                    at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:271)
                    at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestEntity(ManagedClientConnectionImpl.java:197)
                    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:257)
                    at com.amazonaws.http.protocol.SdkHttpRequestExecutor.doSendRequest(SdkHttpRequestExecutor.java:47)
                    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)

                at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:713)
                    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:518)
                    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
                    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
                    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:647)
                    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:441)
                    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:292)
                    at …
Run Code Online (Sandbox Code Playgroud)

java amazon file-upload amazon-s3

5
推荐指数
1
解决办法
8877
查看次数

将图像上传到 Spring Boot 和 S3 all In-Memory

我有一个 Angular webapp,它使用 Spring Boot REST 服务作为其支持的 web 服务。

我正在为用户添加“个人资料”功能,作为其中的一部分,我想建立一个端点,允许用户为自己上传个人资料图像并立即将这些文件上传到 S3(我将在其中托管所有图像)。

看几个Spring Boot/文件上传教程:

似乎处理此类文件上传的标准方法是公开一个接受MultipartFiles如下的控制器端点:

@RestController
@RequestMapping("/v1/profiles")
public class ProfileController {
    @PostMapping("/photo")
    public ResponseEntity uploadProfilePhoto(@RequestParam("mpf") MultipartFile mpf)
        // ...
}
Run Code Online (Sandbox Code Playgroud)

查看所有这些代码,我无法判断该MultipartFile实例是否在内存中,或者 Spring 是否将其位置设置/tmp在磁盘上的某个位置(可能在?下)。

查看AWS S3 Java SDK 教程,上传基于磁盘的文件的标准方法似乎是这样的:

File file = new File(uploadFileName);
s3client.putObject(new PutObjectRequest(bucketName, keyName, file));
Run Code Online (Sandbox Code Playgroud)

所以看起来我必须在磁盘上有一个文件才能上传到 S3。

我想知道是否有办法将所有内容保存在内存中,或者这是否是一个坏主意,我应该坚持使用磁盘/File实例!

  • 有没有办法将整个配置文件图像(MultipartFile)保存在控制器方法中的内存中?
  • 有没有办法MultipartFile向 S3提供(也许通过序列化?!)一个实例PutObjectRequest
  • 或者这都是一个糟糕的主意(如果是这样,为什么?!)?

spring multipart amazon-s3 amazon-web-services spring-boot

5
推荐指数
1
解决办法
2233
查看次数