Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fzm-joying
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lei
fzm-joying
Commits
43b35484
Commit
43b35484
authored
Jul 13, 2021
by
tangtuo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增获取oss签名等接口
parent
b2e98322
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
0 deletions
+72
-0
OssUtil.java
...ng-common/src/main/java/com/fzm/common/utils/OssUtil.java
+38
-0
OssController.java
...rc/main/java/com/fzm/portal/controller/OssController.java
+34
-0
No files found.
joying-common/src/main/java/com/fzm/common/utils/OssUtil.java
View file @
43b35484
...
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
...
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.IdUtil
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.common.utils.BinaryUtil
;
import
com.aliyun.oss.model.*
;
import
com.aliyun.oss.model.*
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.exception.GlobalException
;
...
@@ -18,6 +19,8 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -18,6 +19,8 @@ import javax.servlet.http.HttpServletResponse;
import
java.io.*
;
import
java.io.*
;
import
java.net.URLEncoder
;
import
java.net.URLEncoder
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
/**
/**
* @author tangtuo
* @author tangtuo
...
@@ -146,6 +149,41 @@ public class OssUtil {
...
@@ -146,6 +149,41 @@ public class OssUtil {
}
}
public
Map
<
String
,
String
>
policy
()
{
String
accessId
=
ossProperties
.
getAppKey
();
// 请填写您的AccessKeyId。
String
accessKey
=
ossProperties
.
getAppSecret
();
// 请填写您的AccessKeySecret。
String
endpoint
=
ossProperties
.
getEndPoint
();
// 请填写您的 endpoint。
String
bucket
=
ossProperties
.
getEncryptBucket
();
// 请填写您的 bucketname 。
String
host
=
"https://"
+
bucket
+
"."
+
endpoint
;
// host的格式为 bucketname.endpoint
String
dir
=
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd"
)
+
"/"
+
IdUtil
.
simpleUUID
()
+
"/"
;
Map
<
String
,
String
>
respMap
=
new
LinkedHashMap
<>();
// 创建OSSClient实例。
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessId
,
accessKey
);
try
{
long
expireTime
=
30
;
long
expireEndTime
=
System
.
currentTimeMillis
()
+
expireTime
*
1000
;
Date
expiration
=
new
Date
(
expireEndTime
);
// PostObject请求最大可支持的文件大小为5 GB,即CONTENT_LENGTH_RANGE为5*1024*1024*1024。
PolicyConditions
policyConds
=
new
PolicyConditions
();
policyConds
.
addConditionItem
(
PolicyConditions
.
COND_CONTENT_LENGTH_RANGE
,
0
,
1048576000
);
policyConds
.
addConditionItem
(
MatchMode
.
StartWith
,
PolicyConditions
.
COND_KEY
,
dir
);
String
postPolicy
=
ossClient
.
generatePostPolicy
(
expiration
,
policyConds
);
byte
[]
binaryData
=
postPolicy
.
getBytes
(
"utf-8"
);
String
encodedPolicy
=
BinaryUtil
.
toBase64String
(
binaryData
);
String
postSignature
=
ossClient
.
calculatePostSignature
(
postPolicy
);
respMap
.
put
(
"accessid"
,
accessId
);
respMap
.
put
(
"policy"
,
encodedPolicy
);
respMap
.
put
(
"signature"
,
postSignature
);
respMap
.
put
(
"dir"
,
dir
);
respMap
.
put
(
"host"
,
host
);
respMap
.
put
(
"expire"
,
String
.
valueOf
(
expireEndTime
/
1000
));
return
respMap
;
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
throw
GlobalException
.
newException
(
ResultCode
.
FILE_UPLOAD_ERROR
,
e
.
getMessage
());
}
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
String
endpoint
=
"oss-cn-hangzhou.aliyuncs.com"
;
String
endpoint
=
"oss-cn-hangzhou.aliyuncs.com"
;
...
...
joying-portal/src/main/java/com/fzm/portal/controller/OssController.java
0 → 100644
View file @
43b35484
package
com
.
fzm
.
portal
.
controller
;
import
cn.dev33.satoken.annotation.SaCheckLogin
;
import
com.fzm.common.model.ResponseModel
;
import
com.fzm.common.utils.OssUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.Map
;
/**
* @author tangtuo
* @date 2021/7/13 10:34
*/
@RestController
@RequestMapping
(
"/oss"
)
@Api
(
tags
=
"oss相关"
)
public
class
OssController
{
@Resource
private
OssUtil
ossUtil
;
@SaCheckLogin
@GetMapping
(
"/policy"
)
@ApiOperation
(
"完成oss签名"
)
public
ResponseModel
<
Map
<
String
,
String
>>
policy
()
{
Map
<
String
,
String
>
policy
=
ossUtil
.
policy
();
return
ResponseModel
.
success
(
policy
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment