Skip to content

Commit

Permalink
Merge pull request aliyun#83 from aliyun/runsheng/dev_samples
Browse files Browse the repository at this point in the history
Log : 1	add CustomSignSample 2	add user info
  • Loading branch information
duan007a authored Jan 11, 2018
2 parents 85faf65 + 1da6b38 commit f8f3a25
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package com.alibaba.sdk.android.oss.sample;

import android.content.Context;
import android.util.Log;

import com.alibaba.sdk.android.oss.ClientException;
import com.alibaba.sdk.android.oss.OSSClient;
import com.alibaba.sdk.android.oss.ServiceException;
import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback;
import com.alibaba.sdk.android.oss.callback.OSSProgressCallback;
import com.alibaba.sdk.android.oss.common.auth.OSSCustomSignerCredentialProvider;
import com.alibaba.sdk.android.oss.common.utils.OSSUtils;
import com.alibaba.sdk.android.oss.internal.OSSAsyncTask;
import com.alibaba.sdk.android.oss.model.GetObjectRequest;
import com.alibaba.sdk.android.oss.model.GetObjectResult;
import com.alibaba.sdk.android.oss.model.OSSRequest;
import com.alibaba.sdk.android.oss.sample.customprovider.UIDisplayer;

/**
* Created by wangzheng on 2018/1/11.
*/

public class CustomSignSample extends BaseSamples {

String mBucket;
String mObject;

public CustomSignSample(String bucket, String object) {
mBucket = bucket;
mObject = object;
}

public void customSign(Context ctx, String endpoint) {
OSSCustomSignerCredentialProvider provider = new OSSCustomSignerCredentialProvider() {
@Override
public String signContent(String content) {

// 此处本应该是客户端将contentString发送到自己的业务服务器,然后由业务服务器返回签名后的content。关于在业务服务器实现签名算法
// 详情请查看http://help.aliyun.com/document_detail/oss/api-reference/access-control/signature-header.html。客户端
// 的签名算法实现请参考OSSUtils.sign(accessKey,screctKey,content)
String signedString = OSSUtils.sign("AK", "SK", content);
return signedString;
}
};

OSSClient tClient = new OSSClient(ctx, endpoint, provider);

GetObjectRequest get = new GetObjectRequest(mBucket, mObject);
get.setCRC64(OSSRequest.CRC64Config.YES);
get.setProgressListener(new OSSProgressCallback<GetObjectRequest>() {
@Override
public void onProgress(GetObjectRequest request, long currentSize, long totalSize) {
Log.d("GetObject", "currentSize: " + currentSize + " totalSize: " + totalSize);

}
});
OSSAsyncTask task = tClient.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
@Override
public void onSuccess(GetObjectRequest request, GetObjectResult result) {

}

@Override
public void onFailure(GetObjectRequest request, ClientException clientException, ServiceException serviceException) {

}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ private void dismissLoading() {
}
}

//初始化一个OssService用来上传下载
public OssService initOSS(String endpoint, String bucket, UIDisplayer displayer) {

// 移动端是不安全环境,不建议直接使用阿里云主账号ak,sk的方式。建议使用STS方式。具体参
Expand All @@ -119,7 +118,6 @@ public OssService initOSS(String endpoint, String bucket, UIDisplayer displayer)
// credentialProvider = new PlainTextAKSKCredentialProvider(AK,SK)
// 以下是使用STS Sever方式。


OSSCredentialProvider credentialProvider;
//使用自己的获取STSToken的类
String stsServer = ((EditText) findViewById(R.id.stsserver)).getText().toString();
Expand Down
9 changes: 8 additions & 1 deletion app/src/main/res/layout/content_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请先设置正确的STS鉴权服务器地址,否则以下服务无法直接使用。"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="11sp" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand All @@ -21,7 +28,7 @@

<TextView
android:id="@+id/textView"
android:layout_width="70dp"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:text="STS鉴权服务器:"
android:textAppearance="?android:attr/textAppearanceLarge"
Expand Down

0 comments on commit f8f3a25

Please sign in to comment.