Java AWS S3预签名URL文件上载-将文件名保留在bucket中
我正在尝试使用下面的预签名PUT URL将文件上传到S3 bucket中Java AWS S3预签名URL文件上载-将文件名保留在bucket中,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我正在尝试使用下面的预签名PUT URL将文件上传到S3 bucket中 String tempFileKey = UUID.randomUUID().toString(); GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(tempBucketName, tempFileKey)
String tempFileKey = UUID.randomUUID().toString();
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(tempBucketName, tempFileKey)
.withMethod(HttpMethod.PUT)
.withExpiration(expiration);
URL fileUrl = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
上述方法的问题是,如果用户上传一个名为“xyz.jpg”的文件,我将无法在s3 bucket中保留文件名(或扩展名)。文件以tempFileKey作为名称保存。在创建预签名的url时,我不知道文件名或扩展名
我尝试按照中的建议使用${filename}作为tempFilekey,但它只是以${filename}(字面意思)的名称保存。对象键是预签名url的组成部分,是生成url的算法所必需的:
因此,您不能更改密钥。对象密钥是预签名url的组成部分,是生成url的算法所必需的:
因此,不能更改密钥。当您创建并共享一个预签名的URL时,您可以指定对象的bucket和密钥(其他都不合理)。如果您想让客户机有机会提出一个密钥,那么让他们提前向您发送该密钥,对其进行验证,并将其包含在您的预签名计算中。当您创建并共享一个预签名URL时,您可以指定对象的bucket和密钥(其他任何操作都不合理)。如果您想让客户有机会提出一个密钥,那么让他们提前发送给您,验证它,并将它包括在您的预签名计算中。