Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
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
bp
ShenghuoquanBusiness
Commits
3ff46ea1
Commit
3ff46ea1
authored
May 20, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 接入金山云对象存储SDK
parent
aa698b33
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
215 additions
and
1 deletion
+215
-1
build.gradle
Components/newscontent/build.gradle
+1
-0
ks3-androidsdk-1.4.9.jar
Components/newscontent/libs/ks3-androidsdk-1.4.9.jar
+0
-0
NewsContentApplication.kt
...an/shenghuoquan/newscontent/app/NewsContentApplication.kt
+6
-0
Ks3Core.kt
...java/com/yidian/shenghuoquan/newscontent/utils/Ks3Core.kt
+203
-0
build.gradle
build.gradle
+2
-0
config.gradle
config/config.gradle
+3
-1
No files found.
Components/newscontent/build.gradle
View file @
3ff46ea1
...
@@ -75,4 +75,5 @@ dependencies {
...
@@ -75,4 +75,5 @@ dependencies {
implementation
'com.yidian.chameleon:annotation:0.3.29'
implementation
'com.yidian.chameleon:annotation:0.3.29'
kapt
'com.yidian.chameleon:annotationcompiler:0.3.29'
kapt
'com.yidian.chameleon:annotationcompiler:0.3.29'
implementation
files
(
'libs/meglive_still.aar'
)
implementation
files
(
'libs/meglive_still.aar'
)
implementation
files
(
'libs/ks3-androidsdk-1.4.9.jar'
)
}
}
\ No newline at end of file
Components/newscontent/libs/ks3-androidsdk-1.4.9.jar
0 → 100644
View file @
3ff46ea1
File added
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/app/NewsContentApplication.kt
View file @
3ff46ea1
...
@@ -47,6 +47,7 @@ import com.yidian.shenghuoquan.newscontent.ui.mine.MineActivity
...
@@ -47,6 +47,7 @@ import com.yidian.shenghuoquan.newscontent.ui.mine.MineActivity
import
com.yidian.shenghuoquan.newscontent.ui.mine.SubscriptionActivity
import
com.yidian.shenghuoquan.newscontent.ui.mine.SubscriptionActivity
import
com.yidian.shenghuoquan.newscontent.ui.search.SearchChannelActivity
import
com.yidian.shenghuoquan.newscontent.ui.search.SearchChannelActivity
import
com.yidian.shenghuoquan.newscontent.ui.search.SearchResultPageActivity
import
com.yidian.shenghuoquan.newscontent.ui.search.SearchResultPageActivity
import
com.yidian.shenghuoquan.newscontent.utils.Ks3Core
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.node.XPageHandler
import
com.yidian.xpage.node.XPageHandler
import
com.yidian.xpage.node.XPageNode
import
com.yidian.xpage.node.XPageNode
...
@@ -64,6 +65,7 @@ class NewsContentApplication : YdBaseApplication() {
...
@@ -64,6 +65,7 @@ class NewsContentApplication : YdBaseApplication() {
initVideo
()
initVideo
()
initChameleon
()
initChameleon
()
initChameleonService
()
initChameleonService
()
initKs3Core
()
}
}
}
}
...
@@ -313,6 +315,10 @@ class NewsContentApplication : YdBaseApplication() {
...
@@ -313,6 +315,10 @@ class NewsContentApplication : YdBaseApplication() {
PlayerFactory
.
setPlayManager
(
CustomPlayerManager
::
class
.
java
)
PlayerFactory
.
setPlayManager
(
CustomPlayerManager
::
class
.
java
)
}
}
private
fun
initKs3Core
()
{
Ks3Core
.
instance
.
init
(
this
)
}
override
fun
onTerminate
()
{
override
fun
onTerminate
()
{
super
.
onTerminate
()
super
.
onTerminate
()
ChameleonServiceManager
.
unregisterAllChameleonService
()
ChameleonServiceManager
.
unregisterAllChameleonService
()
...
...
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/utils/Ks3Core.kt
0 → 100644
View file @
3ff46ea1
package
com.yidian.shenghuoquan.newscontent.utils
import
android.content.Context
import
android.util.Log
import
com.ksyun.ks3.exception.Ks3Error
import
com.ksyun.ks3.model.acl.CannedAccessControlList
import
com.ksyun.ks3.services.AuthListener
import
com.ksyun.ks3.services.Ks3Client
import
com.ksyun.ks3.services.Ks3ClientConfiguration
import
com.ksyun.ks3.services.handler.PutObjectACLResponseHandler
import
com.ksyun.ks3.services.handler.PutObjectResponseHandler
import
com.ksyun.ks3.services.request.PutObjectRequest
import
com.yidian.common.utils.EncryptUtil
import
cz.msebera.android.httpclient.Header
import
java.io.File
/**
* author: yinjiacheng
* date: 5/20/21 11:08 AM
* description: 金山云存储
*/
class
Ks3Core
private
constructor
()
:
AuthListener
{
private
lateinit
var
client
:
Ks3Client
private
lateinit
var
putObjectResponseHandler
:
PutObjectResponseHandler
private
lateinit
var
putObjectACLResponseHandler
:
PutObjectACLResponseHandler
private
val
onKs3UploadListenerList
:
ArrayList
<
OnKs3UploadListener
>
by
lazy
{
ArrayList
<
OnKs3UploadListener
>()
}
companion
object
{
const
val
TAG
=
"Ks3Core"
const
val
BUCKET_NAME
=
"bp-yidian"
const
val
END_POINT
=
"ks3-cn-beijing.ksyun.com"
val
instance
:
Ks3Core
by
lazy
(
mode
=
LazyThreadSafetyMode
.
SYNCHRONIZED
)
{
Ks3Core
()
}
}
/**
* 初始化
*/
fun
init
(
context
:
Context
)
{
initClient
(
context
)
initListener
()
}
private
fun
initClient
(
context
:
Context
)
{
client
=
Ks3Client
(
this
,
context
)
client
.
setConfiguration
(
Ks3ClientConfiguration
.
getDefaultConfiguration
())
client
.
setEndpoint
(
END_POINT
)
}
private
fun
initListener
()
{
putObjectResponseHandler
=
object
:
PutObjectResponseHandler
()
{
override
fun
onTaskProgress
(
progress
:
Double
)
{
// work thread
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadProgress
(
progress
)
}
}
}
override
fun
onTaskFailure
(
statesCode
:
Int
,
error
:
Ks3Error
?,
responceHeaders
:
Array
<
out
Header
>?,
response
:
String
?,
throwable
:
Throwable
?
)
{
Log
.
e
(
TAG
,
"put object fail:, errorMsg: ${error?.errorMessage}"
)
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadFailure
(
error
?.
errorMessage
)
}
}
}
override
fun
onTaskSuccess
(
statesCode
:
Int
,
responceHeaders
:
Array
<
out
Header
>?)
{
Log
.
d
(
TAG
,
"put object success."
)
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadSuccess
()
}
}
}
override
fun
onTaskStart
()
{
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadStart
()
}
}
}
override
fun
onTaskFinish
()
{
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadFinish
()
}
}
}
override
fun
onTaskCancel
()
{
if
(
onKs3UploadListenerList
.
size
>
0
)
{
for
(
listener
in
onKs3UploadListenerList
)
{
listener
.
onUploadCancel
()
}
}
}
}
putObjectACLResponseHandler
=
object
:
PutObjectACLResponseHandler
()
{
override
fun
onSuccess
(
statesCode
:
Int
,
responceHeaders
:
Array
<
out
Header
>?)
{
Log
.
d
(
TAG
,
"put object acl success."
)
}
override
fun
onFailure
(
statesCode
:
Int
,
error
:
Ks3Error
?,
responceHeaders
:
Array
<
out
Header
>?,
response
:
String
?,
throwable
:
Throwable
?
)
{
Log
.
e
(
TAG
,
"put object acl fail:, errorMsg: ${error?.errorMessage}"
)
}
}
}
/**
* 文件上传
* @param filePath 本地文件全路径
*/
/*fun uploadFile(filePath: String) {
client.putObject(
BUCKET_NAME,
EncryptUtil.getMD5(filePath),
File(filePath),
putObjectResponseHandler
)
}*/
/**
* 文件上传
* @param filePath 本地文件全路径
*/
fun
uploadFile
(
filePath
:
String
)
{
val
request
=
PutObjectRequest
(
BUCKET_NAME
,
EncryptUtil
.
getMD5
(
filePath
),
File
(
filePath
))
request
.
cannedAcl
=
CannedAccessControlList
.
PublicRead
client
.
putObject
(
request
,
putObjectResponseHandler
)
}
/**
* 为已存在于bucket中的object设置访问控制权限
*/
private
fun
putObjectACL
(
filePath
:
String
)
{
val
controlList
=
CannedAccessControlList
.
PublicRead
client
.
putObjectACL
(
BUCKET_NAME
,
EncryptUtil
.
getMD5
(
filePath
),
controlList
,
putObjectACLResponseHandler
)
}
override
fun
onCalculateAuth
(
httpMethod
:
String
?,
ContentType
:
String
?,
Date
:
String
?,
ContentMD5
:
String
?,
Resource
:
String
?,
Headers
:
String
?
):
String
{
// 此处应由APP端向业务服务器发送post请求返回Token
// 需要注意该回调方法运行在非主线程
Log
.
d
(
TAG
,
"httpMethod: $httpMethod, ContentType: $ContentType, Date: $Date, ContentMD5: $ContentMD5, Resource: $Resource, Headers: $Headers"
)
return
""
}
fun
addOnKs3UploadListener
(
listener
:
OnKs3UploadListener
)
{
if
(!
onKs3UploadListenerList
.
contains
(
listener
))
{
onKs3UploadListenerList
.
add
(
listener
)
}
}
fun
removeOnKs3UploadListener
(
listener
:
OnKs3UploadListener
)
{
onKs3UploadListenerList
.
remove
(
listener
)
}
interface
OnKs3UploadListener
{
fun
onUploadStart
()
fun
onUploadProgress
(
progress
:
Double
)
fun
onUploadFinish
()
fun
onUploadCancel
()
fun
onUploadSuccess
()
fun
onUploadFailure
(
message
:
String
?)
}
}
\ No newline at end of file
build.gradle
View file @
3ff46ea1
...
@@ -7,6 +7,7 @@ buildscript {
...
@@ -7,6 +7,7 @@ buildscript {
repositories
{
repositories
{
google
()
google
()
jcenter
()
jcenter
()
mavenCentral
()
maven
{
url
"https://jitpack.io"
}
maven
{
url
"https://jitpack.io"
}
maven
{
url
"https://dl.bintray.com/thelasterstar/maven/"
}
maven
{
url
"https://dl.bintray.com/thelasterstar/maven/"
}
maven
{
url
'https://repo1.maven.org/maven2/'
}
maven
{
url
'https://repo1.maven.org/maven2/'
}
...
@@ -25,6 +26,7 @@ allprojects {
...
@@ -25,6 +26,7 @@ allprojects {
repositories
{
repositories
{
google
()
google
()
jcenter
()
jcenter
()
mavenCentral
()
maven
{
url
"https://jitpack.io"
}
maven
{
url
"https://jitpack.io"
}
maven
{
url
"https://dl.bintray.com/thelasterstar/maven/"
}
maven
{
url
"https://dl.bintray.com/thelasterstar/maven/"
}
maven
{
url
"http://dailybuild2.yidian-inc.com:8088/repository/maven-public/"
}
maven
{
url
"http://dailybuild2.yidian-inc.com:8088/repository/maven-public/"
}
...
...
config/config.gradle
View file @
3ff46ea1
...
@@ -60,7 +60,9 @@ ext.dependencies = [
...
@@ -60,7 +60,9 @@ ext.dependencies = [
'io.reactivex.rxjava3:rxjava:3.0.9'
,
'io.reactivex.rxjava3:rxjava:3.0.9'
,
'com.yidian.framework.mobile:ydhttp:1.0.8-SNAPSHOT'
,
'com.yidian.framework.mobile:ydhttp:1.0.8-SNAPSHOT'
,
'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT'
,
'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT'
,
'com.yidian.framework.mobile:xdiamond:1.0.2-SNAPSHOT'
'com.yidian.framework.mobile:xdiamond:1.0.2-SNAPSHOT'
,
'com.loopj.android:android-async-http:1.4.9'
],
],
other:
[
other:
[
':CommonLib:Common'
':CommonLib:Common'
...
...
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