|
@@ -1,7 +1,6 @@
|
|
package org.thingsboard.server.utils;
|
|
package org.thingsboard.server.utils;
|
|
|
|
|
|
import io.minio.*;
|
|
import io.minio.*;
|
|
-import io.minio.errors.*;
|
|
|
|
import io.minio.http.Method;
|
|
import io.minio.http.Method;
|
|
import io.minio.messages.Bucket;
|
|
import io.minio.messages.Bucket;
|
|
import lombok.SneakyThrows;
|
|
import lombok.SneakyThrows;
|
|
@@ -10,9 +9,8 @@ import org.apache.commons.fileupload.FileItem;
|
|
import org.apache.commons.fileupload.FileItemFactory;
|
|
import org.apache.commons.fileupload.FileItemFactory;
|
|
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
|
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.io.IOUtils;
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
-import org.jetbrains.annotations.NotNull;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
@@ -27,13 +25,8 @@ import javax.servlet.http.HttpServletResponse;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.io.OutputStream;
|
|
-import java.net.MalformedURLException;
|
|
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
-import java.nio.file.Files;
|
|
|
|
-import java.nio.file.Paths;
|
|
|
|
-import java.security.InvalidKeyException;
|
|
|
|
-import java.security.NoSuchAlgorithmException;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
@@ -44,9 +37,11 @@ public class MinioUtils {
|
|
|
|
|
|
private final MinioFileStorageProperties fileStorageProperties;
|
|
private final MinioFileStorageProperties fileStorageProperties;
|
|
private final MinioClient minioClient;
|
|
private final MinioClient minioClient;
|
|
|
|
+ private final String downloadAddress;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- public MinioUtils(MinioFileStorageProperties fileStorageProperties) {
|
|
+ public MinioUtils(MinioFileStorageProperties fileStorageProperties, @Value("${file.download.address}") String downloadAddress) {
|
|
|
|
+ this.downloadAddress = downloadAddress;
|
|
log.info("endpoint={} , accessKey={} ,secretKey={}", fileStorageProperties.getMinioUrl(), fileStorageProperties.getMinioName(), fileStorageProperties.getMinioPass());
|
|
log.info("endpoint={} , accessKey={} ,secretKey={}", fileStorageProperties.getMinioUrl(), fileStorageProperties.getMinioName(), fileStorageProperties.getMinioPass());
|
|
this.fileStorageProperties = fileStorageProperties;
|
|
this.fileStorageProperties = fileStorageProperties;
|
|
this.minioClient = MinioClient.builder().credentials(fileStorageProperties.getMinioName(), fileStorageProperties.getMinioPass()).endpoint(fileStorageProperties.getMinioUrl()).build();
|
|
this.minioClient = MinioClient.builder().credentials(fileStorageProperties.getMinioName(), fileStorageProperties.getMinioPass()).endpoint(fileStorageProperties.getMinioUrl()).build();
|
|
@@ -153,9 +148,13 @@ public class MinioUtils {
|
|
getUploadObjectUrl(fileName, 7 * 24 * 60 * 60);
|
|
getUploadObjectUrl(fileName, 7 * 24 * 60 * 60);
|
|
try {
|
|
try {
|
|
|
|
|
|
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
+ if(null != RequestContextHolder.getRequestAttributes()){
|
|
-
|
|
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
- realDownloadPath = request.getRequestURL().toString().replace(request.getServletPath(), "/api/yt/nxAnnex/downloadFile/" + fileName);
|
|
+
|
|
|
|
+ realDownloadPath = request.getRequestURL().toString().replace(request.getServletPath(), "/api/yt/nxAnnex/downloadFile/" + fileName);
|
|
|
|
+ }else{
|
|
|
|
+ realDownloadPath = downloadAddress + "/api/yt/nxAnnex/downloadFile/" + fileName;
|
|
|
|
+ }
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
log.info("Could not upload file " + fileName + ". Please try again!");
|
|
log.info("Could not upload file " + fileName + ". Please try again!");
|
|
@@ -242,10 +241,13 @@ public class MinioUtils {
|
|
upload(commonsMultipartFile);
|
|
upload(commonsMultipartFile);
|
|
|
|
|
|
|
|
|
|
-
|
|
+ if(null != RequestContextHolder.getRequestAttributes()){
|
|
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
-
|
|
+
|
|
- realDownloadPath = request.getRequestURL().toString().replace(request.getServletPath(), "/api/yt/nxAnnex/downloadFile/" + fileName);
|
|
+ realDownloadPath = request.getRequestURL().toString().replace(request.getServletPath(), "/api/yt/nxAnnex/downloadFile/" + fileName);
|
|
|
|
+ }else{
|
|
|
|
+ realDownloadPath = downloadAddress + "/api/yt/nxAnnex/downloadFile/" + fileName;
|
|
|
|
+ }
|
|
return new FileUploadResponse(fileName, realDownloadPath, "video/mp4", commonsMultipartFile.getSize(), staticPath);
|
|
return new FileUploadResponse(fileName, realDownloadPath, "video/mp4", commonsMultipartFile.getSize(), staticPath);
|
|
} catch (Throwable e) {
|
|
} catch (Throwable e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|