Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
荆蔚杰
/
java.archive
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
d93c14b8
authored
2021-12-01 17:46:34 +0800
by
荆蔚杰
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
升级minio sdk版本,代码修改中
minio批量删除接口修改. 附件删除接口bug修改.
1 parent
3eb2e4dc
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
74 additions
and
33 deletions
pom.xml
src/main/java/com/pashanhoo/common/util/fileupload/FileController.java
src/main/java/com/pashanhoo/common/util/fileupload/MinioUtil.java
src/main/java/com/pashanhoo/file/controller/DgFileController.java
src/main/java/com/pashanhoo/file/mapper/DgFileMapper.java
src/main/java/com/pashanhoo/file/service/DgFileService.java
src/main/java/com/pashanhoo/file/service/impl/DgFileServiceImpl.java
src/main/resources/mapper/DgFileMapper.xml
pom.xml
View file @
d93c14b
...
...
@@ -229,7 +229,7 @@
<dependency>
<groupId>
io.minio
</groupId>
<artifactId>
minio
</artifactId>
<version>
6.0.11
</version>
<version>
8.3.4
</version>
</dependency>
<dependency>
...
...
src/main/java/com/pashanhoo/common/util/fileupload/FileController.java
View file @
d93c14b
package
com
.
pashanhoo
.
common
.
util
.
fileupload
;
import
com.pashanhoo.common.Result
;
import
io.minio.messages.DeleteError
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
...
...
@@ -10,6 +11,7 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -58,4 +60,20 @@ public class FileController {
}
}
@DeleteMapping
(
"/batchDeleteFile"
)
@ApiOperation
(
"批量删除文件"
)
public
Result
batchDeleteFile
(
@ApiParam
(
"存储url集合"
)
@RequestBody
List
<
String
>
saveUrls
){
try
{
List
<
String
>
msg
=
new
ArrayList
<>();
Iterable
<
io
.
minio
.
Result
<
DeleteError
>>
results
=
minioUtil
.
batchRemove
(
minioConfig
.
getBucket
(),
saveUrls
);
for
(
io
.
minio
.
Result
<
DeleteError
>
result
:
results
)
{
DeleteError
deleteError
=
result
.
get
();
msg
.
add
(
"Error in deleting object "
+
deleteError
.
objectName
()
+
":"
+
deleteError
.
message
());
}
return
Result
.
ok
(
msg
.
toString
());
}
catch
(
Exception
e
)
{
return
Result
.
exception
(
e
.
getMessage
());
}
}
}
...
...
src/main/java/com/pashanhoo/common/util/fileupload/MinioUtil.java
View file @
d93c14b
package
com
.
pashanhoo
.
common
.
util
.
fileupload
;
import
com.pashanhoo.file.entity.vo.FileAttribute
;
import
io.minio.MinioClient
;
import
io.minio.Result
;
import
io.minio.errors.*
;
import
io.minio.*
;
import
io.minio.messages.DeleteError
;
import
io.minio.messages.DeleteObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.xmlpull.v1.XmlPullParserException
;
import
javax.annotation.PostConstruct
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.*
;
/**
...
...
@@ -32,8 +28,13 @@ public class MinioUtil {
@PostConstruct
public
void
init
()
{
try
{
minioClient
=
new
MinioClient
(
String
.
format
(
"http://%s:%s"
,
minioConfig
.
getEndpoint
(),
minioConfig
.
getPort
()),
minioConfig
.
getAccessKeyId
(),
minioConfig
.
getAccessKeySecret
());
}
catch
(
InvalidEndpointException
|
InvalidPortException
e
)
{
minioClient
=
MinioClient
.
builder
().
endpoint
(
String
.
format
(
"http://%s:%s"
,
minioConfig
.
getEndpoint
(),
minioConfig
.
getPort
())).
credentials
(
minioConfig
.
getAccessKeyId
(),
minioConfig
.
getAccessKeySecret
()).
build
();
boolean
isExist
=
minioClient
.
bucketExists
(
BucketExistsArgs
.
builder
().
bucket
(
minioConfig
.
getBucket
()).
build
());
if
(!
isExist
)
{
minioClient
.
makeBucket
(
MakeBucketArgs
.
builder
().
bucket
(
minioConfig
.
getBucket
()).
build
());
}
// minioClient = new MinioClient(String.format("http://%s:%s", minioConfig.getEndpoint(), minioConfig.getPort()), minioConfig.getAccessKeyId(), minioConfig.getAccessKeySecret());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
@@ -63,7 +64,8 @@ public class MinioUtil {
// 浏览器直接预览地址,针对图片
String
pUrl
=
minioConfig
.
getType
()
+
minioConfig
.
getEndpoint
()
+
"/file/"
+
saveUrl
;
try
{
minioClient
.
putObject
(
minioConfig
.
getBucket
(),
saveUrl
,
file
.
getInputStream
(),
contentType
);
minioClient
.
putObject
(
PutObjectArgs
.
builder
().
bucket
(
minioConfig
.
getBucket
()).
object
(
saveUrl
).
stream
(
file
.
getInputStream
(),
file
.
getSize
(),
-
1
).
contentType
(
contentType
).
build
());
// minioClient.putObject(minioConfig.getBucket(), saveUrl, file.getInputStream(), contentType);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -101,20 +103,27 @@ public class MinioUtil {
* @throws Exception
*/
public
void
removeObject
(
String
bucketName
,
String
objectName
)
throws
Exception
{
minioClient
.
removeObject
(
bucketName
,
objectName
);
minioClient
.
removeObject
(
RemoveObjectArgs
.
builder
().
bucket
(
bucketName
).
object
(
objectName
).
build
()
);
}
/**
* 批量删除附件
*
* @param bucketName 存储桶名称
* @param objectNames 附件存储路径集合
*/
public
Iterable
batchRemove
(
String
bucketName
,
Iterable
<
String
>
objectNames
){
return
minioClient
.
removeObjects
(
bucketName
,
objectNames
);
public
Iterable
<
Result
<
DeleteError
>>
batchRemove
(
String
bucketName
,
List
<
String
>
objectNames
)
{
List
<
DeleteObject
>
objects
=
new
ArrayList
<>(
objectNames
.
size
());
for
(
String
objectName
:
objectNames
)
{
objects
.
add
(
new
DeleteObject
(
objectName
));
}
Iterable
<
Result
<
DeleteError
>>
results
=
minioClient
.
removeObjects
(
RemoveObjectsArgs
.
builder
().
bucket
(
bucketName
).
objects
(
objects
).
build
());
return
results
;
}
/**
* 通过输入流上传到minio
*
* @param inputStream 文件输入流
* @param fileName 文件名,去除后缀名
* @param expandName 带.后缀名
...
...
@@ -122,7 +131,7 @@ public class MinioUtil {
* @return
* @throws IOException
*/
public
FileAttribute
transferToMinio
(
InputStream
inputStream
,
String
fileName
,
String
expandName
,
String
fileSize
)
throws
IOException
{
public
FileAttribute
transferToMinio
(
InputStream
inputStream
,
String
fileName
,
String
expandName
,
String
fileSize
)
throws
IOException
{
String
savePath
=
FileAttachmentUtil
.
getSavePath
(
UUID
.
randomUUID
().
toString
());
String
contentType
=
contentTypeMap
.
get
(
expandName
.
toLowerCase
());
// 下载地址
...
...
@@ -130,7 +139,8 @@ public class MinioUtil {
// 浏览器直接预览地址,针对图片
String
pUrl
=
minioConfig
.
getType
()
+
minioConfig
.
getEndpoint
()
+
"/file/"
+
saveUrl
;
try
{
minioClient
.
putObject
(
minioConfig
.
getBucket
(),
saveUrl
,
inputStream
,
contentType
);
minioClient
.
putObject
(
PutObjectArgs
.
builder
().
bucket
(
minioConfig
.
getBucket
()).
object
(
saveUrl
).
stream
(
inputStream
,
Long
.
parseLong
(
fileSize
),-
1
).
contentType
(
contentType
).
build
());
// minioClient.putObject(minioConfig.getBucket(), saveUrl, inputStream, contentType);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
src/main/java/com/pashanhoo/file/controller/DgFileController.java
View file @
d93c14b
...
...
@@ -43,7 +43,7 @@ public class DgFileController {
@ApiOperation
(
value
=
"批量删除档案文件信息和附件"
)
public
Result
deleteDgFileByIds
(
@ApiParam
(
"档案文件信息ID列表"
)
@RequestBody
List
<
String
>
bsmFileList
)
{
try
{
if
(
dgfileService
.
delete
(
bsmFileList
))
{
if
(
dgfileService
.
delete
File
(
bsmFileList
))
{
return
Result
.
ok
(
"删除成功"
);
}
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/pashanhoo/file/mapper/DgFileMapper.java
View file @
d93c14b
...
...
@@ -28,10 +28,5 @@ public interface DgFileMapper extends BaseMapper<DgFileDO> {
*/
List
<
DgCatalogWithFileVO
>
getFileList
(
@Param
(
"bsmArchive"
)
String
bsmArchive
);
// /**
// * 更新排序
// * @param requests
// * @return
// */
// int updateFileSort(@Param("requests") List<UpdateDgFileRequest> requests);
List
<
DgFileDO
>
getFilesById
(
@Param
(
"bsmFiles"
)
List
<
String
>
bsmFiles
);
}
...
...
src/main/java/com/pashanhoo/file/service/DgFileService.java
View file @
d93c14b
...
...
@@ -56,7 +56,7 @@ public interface DgFileService extends IService<DgFileDO> {
* @param bsmFileList
* @return
*/
boolean
delete
(
List
<
String
>
bsmFileList
)
throws
Exception
;
boolean
delete
File
(
List
<
String
>
bsmFileList
)
throws
Exception
;
/**
* 上传材料附件.材料附件信息入库
...
...
src/main/java/com/pashanhoo/file/service/impl/DgFileServiceImpl.java
View file @
d93c14b
...
...
@@ -11,6 +11,8 @@ import com.pashanhoo.file.entity.DgFileDO;
import
com.pashanhoo.file.entity.vo.*
;
import
com.pashanhoo.file.mapper.DgFileMapper
;
import
com.pashanhoo.file.service.DgFileService
;
import
io.minio.Result
;
import
io.minio.messages.DeleteError
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -18,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
...
...
@@ -109,16 +112,19 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
* @return
*/
@Override
public
boolean
delete
(
List
<
String
>
bsmFileList
)
throws
Exception
{
boolean
flag
=
this
.
removeByIds
(
bsmFileList
);
public
boolean
deleteFile
(
List
<
String
>
bsmFileList
)
throws
Exception
{
QueryWrapper
<
DgFileDO
>
fileWrapper
=
new
QueryWrapper
<>();
fileWrapper
.
lambda
().
in
(
DgFileDO:
:
getBsmFile
,
bsmFileList
);
List
<
DgFileDO
>
fileDOList
=
this
.
list
(
fileWrapper
);
for
(
DgFileDO
fileDO
:
fileDOList
)
{
minioUtil
.
removeObject
(
minioConfig
.
getBucket
(),
fileDO
.
getFjurl
()
);
//删除minio文件
List
<
DgFileDO
>
fileDOList
=
dgfileMapper
.
getFilesById
(
bsmFileList
);
List
<
String
>
urls
=
fileDOList
.
stream
().
map
(
DgFileDO:
:
getFjurl
).
collect
(
Collectors
.
toList
()
);
for
(
String
url
:
urls
)
{
minioUtil
.
removeObject
(
minioConfig
.
getBucket
(),
url
);
}
return
flag
;
// Iterable<Result<DeleteError>> results = minioUtil.batchRemove(minioConfig.getBucket(), urls);
//删除数据库记录
return
this
.
removeByIds
(
bsmFileList
);
}
/**
...
...
src/main/resources/mapper/DgFileMapper.xml
View file @
d93c14b
...
...
@@ -43,7 +43,7 @@
</resultMap>
<select
id=
"getFileList"
resultMap=
"result"
>
select DF.*, DAC.XH as catalogXh, DAC.WJMC,
DAC.BSM_CATALOG as bsmCatalog,
DA.BSM_ARCHIVES
select DF.*, DAC.XH as catalogXh, DAC.WJMC,
DAC.BSM_CATALOG as bsmCatalog,
DA.BSM_ARCHIVES
from DG_FILE DF
right join DG_ARCHIVES_CATALOG DAC on DAC.BSM_CATALOG = DF.BSM_CATALOG
join DG_ARCHIVES DA on DAC.BSM_ARCHIVES = DA.BSM_ARCHIVES
...
...
@@ -52,7 +52,19 @@
DAC.BSM_ARCHIVES = #{bsmArchive,jdbcType=VARCHAR}
</if>
</where>
order by DF.XH,DAC.XH
order by DF.XH, DAC.XH
</select>
<select
id=
"getFilesById"
resultMap=
"BaseResultMap"
>
select *
from DG_FILE
where
BSM_FILE in
<if
test=
"bsmFiles != null and bsmFiles.size() != 0"
>
<foreach
collection=
"bsmFiles"
item=
"bsmFile"
open=
"("
close=
")"
separator=
","
>
#{bsmFile,jdbcType=VARCHAR}
</foreach>
</if>
</select>
<!--<update id="updateFileSort">-->
...
...
Please
register
or
sign in
to post a comment