我们如何使用 java spring boot 从 cdn 服务器(云端)获取媒体文件
我正在使用 s3 存储桶来存储所有媒体。
这是我从 s3 存储桶生成 signedUrl 的代码。我们已经为这个 s3 存储桶创建了云端分发。那么我们如何从云端生成 signedUrl。
@Service
public class FileServiceImpl implements FileService{
@Autowired
private AmazonS3 amazonS3;
@Value("${aws.s3.bucket-name}")
private String bucketName;
@Override
public String generatePreSignedUrlForFileDownload(String fileKey) {
if (fileKey == null || fileKey.isEmpty()) {
throw new AppException(AppConstants.ErrorType.PATH_NULL_FOR_FILE,
AppConstants.ErrorCodes.PATH_NULL_FOR_FILE_ERROR_CODE,
AppConstants.ErrorMessage.PATH_NULL_FOR_FILE_ERROR_MESSAGE);
}
GeneratePresignedUrlRequest presignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, fileKey)
.withMethod(HttpMethod.GET);
URL presignedUrl = amazonS3.generatePresignedUrl(presignedUrlRequest);
return presignedUrl.toString();
}