通过临时url访问obs(java sdk)-凯发k8国际娱乐官网入口
功能说明
obs客户端支持通过访问密钥、请求方法类型、请求参数等信息生成一个在query参数中携带鉴权信息的url,可将该url提供给其他用户进行临时访问。在生成url时,您需要指定url的有效期来限制访客用户的访问时长。
如果您想授予其他用户对桶或对象临时进行其他操作的权限(例如上传或下载对象),则需要生成带对应请求的url后(例如使用生成put请求的url上传对象),将该url提供给其他用户。
- 未配置跨域,需要在控制台配置cors规则,请参考。
- 签名计算问题,请参考url中携带签名排查签名参数是否正确;比如上传对象功能,后端将content-type参与计算签名生成授权url,但是前端使用授权url时没有设置content-type字段或者传入错误的值,此时会出现跨域错误。凯发k8国际娱乐官网入口的解决方案为:content-type字段前后端保持一致。
- 不支持通过cdn加速后的域名生成临时访问url。
开发过程中,您有任何问题可以在github上,或者在中发帖求助。
通过该方式可支持的操作以及相关信息见下表:
操作名 |
http请求方法(obs java sdk对应值) |
特殊操作符(obs java sdk对应值) |
是否需要桶名 |
是否需要对象名 |
---|---|---|---|---|
创建桶 |
httpmethodenum.put |
n/a |
是 |
否 |
获取桶列表 |
httpmethodenum.get |
n/a |
否 |
否 |
删除桶 |
httpmethodenum.delete |
n/a |
是 |
否 |
列举桶内对象 |
httpmethodenum.get |
n/a |
是 |
否 |
列举桶内多版本对象 |
httpmethodenum.get |
specialparamenum.versions |
是 |
否 |
列举分段上传任务 |
httpmethodenum.get |
specialparamenum.uploads |
是 |
否 |
获取桶元数据 |
httpmethodenum.head |
n/a |
是 |
否 |
获取桶区域位置 |
httpmethodenum.get |
specialparamenum.location |
是 |
否 |
获取桶存量信息 |
httpmethodenum.get |
specialparamenum.storageinfo |
是 |
否 |
设置桶配额 |
httpmethodenum.put |
specialparamenum.quota |
是 |
否 |
获取桶配额 |
httpmethodenum.get |
specialparamenum.quota |
是 |
否 |
设置桶存储类别 |
httpmethodenum.put |
specialparamenum.storagepolicy |
是 |
否 |
获取桶存储类别 |
httpmethodenum.get |
specialparamenum.storagepolicy |
是 |
否 |
设置桶访问权限 |
httpmethodenum.put |
specialparamenum.acl |
是 |
否 |
获取桶访问权限 |
httpmethodenum.get |
specialparamenum.acl |
是 |
否 |
开启/关闭桶日志 |
httpmethodenum.put |
specialparamenum.logging |
是 |
否 |
查看桶日志 |
httpmethodenum.get |
specialparamenum.logging |
是 |
否 |
设置桶策略 |
httpmethodenum.put |
specialparamenum.policy |
是 |
否 |
查看桶策略 |
httpmethodenum.get |
specialparamenum.policy |
是 |
否 |
删除桶策略 |
httpmethodenum.delete |
specialparamenum.policy |
是 |
否 |
设置生命周期规则 |
httpmethodenum.put |
specialparamenum.lifecycle |
是 |
否 |
查看生命周期规则 |
httpmethodenum.get |
specialparamenum.lifecycle |
是 |
否 |
删除生命周期规则 |
httpmethodenum.delete |
specialparamenum.lifecycle |
是 |
否 |
设置托管配置 |
httpmethodenum.put |
specialparamenum.website |
是 |
否 |
查看托管配置 |
httpmethodenum.get |
specialparamenum.website |
是 |
否 |
清除托管配置 |
httpmethodenum.delete |
specialparamenum.website |
是 |
否 |
设置桶多版本状态 |
httpmethodenum.put |
specialparamenum.versioning |
是 |
否 |
查看桶多版本状态 |
httpmethodenum.get |
specialparamenum.versioning |
是 |
否 |
设置跨域规则 |
httpmethodenum.put |
specialparamenum.cors |
是 |
否 |
查看跨域规则 |
httpmethodenum.get |
specialparamenum.cors |
是 |
否 |
删除跨域规则 |
httpmethodenum.delete |
specialparamenum.cors |
是 |
否 |
设置桶标签 |
httpmethodenum.put |
specialparamenum.tagging |
是 |
否 |
查看桶标签 |
httpmethodenum.get |
specialparamenum.tagging |
是 |
否 |
删除桶标签 |
httpmethodenum.delete |
specialparamenum.tagging |
是 |
否 |
上传对象 |
httpmethodenum.put |
n/a |
是 |
是 |
追加上传 |
httpmethodenum.post |
specialparamenum.append |
是 |
是 |
下载对象 |
httpmethodenum.get |
n/a |
是 |
是 |
复制对象 |
httpmethodenum.put |
n/a |
是 |
是 |
删除对象 |
httpmethodenum.delete |
n/a |
是 |
是 |
批量删除对象 |
httpmethodenum.post |
specialparamenum.delete |
是 |
是 |
获取对象属性 |
httpmethodenum.head |
n/a |
是 |
是 |
设置对象访问权限 |
httpmethodenum.put |
specialparamenum.acl |
是 |
是 |
查看对象访问权限 |
httpmethodenum.get |
specialparamenum.acl |
是 |
是 |
初始化分段上传任务 |
httpmethodenum.post |
specialparamenum.uploads |
是 |
是 |
上传段 |
httpmethodenum.put |
n/a |
是 |
是 |
复制段 |
httpmethodenum.put |
n/a |
是 |
是 |
列举已上传的段 |
httpmethodenum.get |
n/a |
是 |
是 |
合并段 |
httpmethodenum.post |
n/a |
是 |
是 |
取消分段上传任务 |
httpmethodenum.delete |
n/a |
是 |
是 |
恢复归档存储对象 |
httpmethodenum.post |
specialparamenum.restore |
是 |
是 |
通过obs java sdk生成临时url访问obs的步骤如下:
- 通过obsclient.createtemporarysignature生成带签名信息的url。
- 使用任意http库发送http/https请求,访问obs服务。
接口约束
- obs支持的region以及region与endpoint的对应关系,详细信息请参见。
方法定义
obsclient.createtemporarysignature(temporarysignaturerequest request)
请求参数说明
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
request |
必选 |
参数解释: 临时url创建请求,详见temporarysignaturerequest。 |
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
bucketname |
string |
可选 |
参数解释: 桶名。 约束限制:
默认取值: 无 |
objectkey |
string |
可选 |
参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 |
specialparam |
可选 |
参数解释: 请求中可能用到的特殊参数,代表要操作的子资源。 取值范围: 默认取值: 无 |
|
method |
必选 |
参数解释: http方法类型。 取值范围: 默认取值: 无 |
|
headers |
map |
可选 |
参数解释: 请求中携带的头域。请求头域列表map中第一个string代表请求头域的名称,第二个string代表对应请求头域名称的取值。 默认取值: 无 |
queryparams |
map |
可选 |
参数解释: 请求中携带的查询参数。参数列表map中的string为查询参数的名称,object为对应查询参数名称的取值。 默认取值: 无 |
expires |
long |
必选 |
参数解释: 带授权信息的url的过期时间。 取值范围: 大于等于0的整型数,单位:秒。 默认取值: 300秒 |
requestdate |
date |
必选 |
参数解释: 发起请求的时间。 默认取值: 无 |
返回结果说明
参数名称 |
参数类型 |
描述 |
---|---|---|
signedurl |
string |
参数解释: 带授权信息的url。 默认取值: 无 |
actualsignedrequestheaders |
map |
参数解释: 通过带授权信息的url发起请求时实际应携带的头域。头域列表map中第一个string为请求头域的名称,第二个string为对应请求头域名称的取值。 默认取值: 无 |
代码示例:创建桶
临时授权访问,利用httpmethodenum.put请求创建examplebucket桶,url有效期设置为3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.requestbody;
import okhttp3.response;
import java.util.map;
public class createbucket001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.put, expireseconds);
request.setbucketname("examplebucket");
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("creating bucket using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用put请求创建桶
string location = "your bucket location";
request httprequest =
builder.url(response.getsignedurl())
.put(
requestbody.create(
null,
"
|
代码示例:上传对象
临时授权访问,利用httpmethodenum.put请求上传对象到examplebucket桶下的objectname对象中,url有效期设置为3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.mediatype;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.requestbody;
import okhttp3.response;
import java.util.hashmap;
import java.util.map;
public class putobject001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
map<string, string> headers = new hashmap<>();
string contenttype = "text/plain";
headers.put("content-type", contenttype);
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.put, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
request.setheaders(headers);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("creating object using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用put请求上传对象
request httprequest =
builder.url(response.getsignedurl())
.put(requestbody.create(mediatype.parse(contenttype), "hello obs".getbytes("utf-8")))
.build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("putobject successfully");
} catch (obsexception e) {
system.out.println("putobject failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("putobject failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:下载对象
临时授权访问,利用httpmethodenum.get请求下载examplebucket桶下的objectname对象,url有效期设置为3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.response;
import java.io.inputstream;
import java.util.map;
public class getobject001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.get, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("getting object using temporary signature url:");
system.out.println("signedurl:" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用get请求下载对象
request httprequest = builder.url(response.getsignedurl()).get().build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
inputstream objectcontent = null;
if (res.body() != null) {
objectcontent = res.body().bytestream();
system.out.println("content:" res.body().string() "\n");
}
if(objectcontent != null) {
// objectcontent 就是获取的要下载的文件的文件流
// 在这里可以读取 objectcontent,长时间不读取这个流会被服务端断开连接
}
res.close();
system.out.println("getobject successfully");
} catch (obsexception e) {
system.out.println("getobject failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("getobject failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:列举对象
临时授权访问,利用httpmethodenum.get请求列举examplebucket桶下的对象,url有效期设置为3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.response;
import java.util.map;
public class listobject001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.get, expireseconds);
request.setbucketname("examplebucket");
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("getting object list using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用get请求获取对象列表
request httprequest = builder.url(response.getsignedurl()).get().build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("listobject successfully");
} catch (obsexception e) {
system.out.println("listobject failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("listobject failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:删除对象
临时授权访问,利用httpmethodenum.delete请求删除examplebucket桶下的objectname对象,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.response;
import java.util.map;
public class deleteobject001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.delete, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("deleting object using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用delete删除对象
request httprequest = builder.url(response.getsignedurl()).delete().build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("\tstatus:" res.code());
if (res.body() != null) {
system.out.println("\tcontent:" res.body().string() "\n");
}
res.close();
system.out.println("deleteobjects successfully");
} catch (obsexception e) {
system.out.println("deleteobjects failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("deleteobjects failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:初始化分段上传任务
临时授权访问,利用httpmethodenum.post请求实现分段上传初始化,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.specialparamenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.requestbody;
import okhttp3.response;
import java.util.map;
public class initiatemultipartupload001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.post, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
request.setspecialparam(specialparamenum.uploads);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("initiate multipart upload using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用post请求初始化分段上传任务
request httprequest = builder.url(response.getsignedurl()).post(requestbody.create(null, "")).build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("initiatemultipartupload successfully");
} catch (obsexception e) {
system.out.println("initiatemultipartupload failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("initiatemultipartupload failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:上传段
临时授权访问,利用httpmethodenum.put请求实现上传段,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.requestbody;
import okhttp3.response;
import java.util.hashmap;
import java.util.map;
public class uploadpart001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.put, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
map<string, object> queryparams = new hashmap<string, object>();
// 设置partnumber请求参数,例如:queryparams.put("partnumber", "1");
queryparams.put("partnumber", "partnumber");
queryparams.put("uploadid", "your uploadid");
request.setqueryparams(queryparams);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("upload part using temporary signature url:");
system.out.println("signedurl:" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用put请求上传段
request httprequest =
builder.url(response.getsignedurl())
.put(requestbody.create(null, new byte[6 * 1024 * 1024]))
.build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("uploadpart successfully");
} catch (obsexception e) {
system.out.println("uploadpart failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("uploadpart failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:列举已上传段
临时授权访问,利用httpmethodenum.get请求实现列举已上传段,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.response;
import java.util.hashmap;
import java.util.map;
public class listuploadedparts001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.get, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
map<string, object> queryparams = new hashmap<string, object>();
queryparams.put("uploadid", "your uploadid");
request.setqueryparams(queryparams);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("list parts using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用get请求列举已上传段
request httprequest = builder.url(response.getsignedurl()).get().build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("listparts successfully");
} catch (obsexception e) {
system.out.println("listparts failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("listparts failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:合并段
临时授权访问,利用httpmethodenum.post请求实现合并段,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.mediatype;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.requestbody;
import okhttp3.response;
import java.util.hashmap;
import java.util.map;
public class completemultipartupload001 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.post, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
map<string, string> headers = new hashmap<>();
string contenttype = "application/xml";
headers.put("content-type", contenttype);
request.setheaders(headers);
map<string, object> queryparams = new hashmap<>();
queryparams.put("uploadid", "your uploadid");
request.setqueryparams(queryparams);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("complete multipart upload using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 以下content为示例代码,需要通过列举已上传段方法的响应结果,拼装以下内容
string content = "
|
代码示例:获取图片转码的下载链接
临时授权访问,利用httpmethodenum.get请求实现获取图片转码的下载链接,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import java.util.hashmap;
import java.util.map;
public class getobject002 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// 获取图片转码的下载链接
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.get, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
// 设置图片转码参数
map<string, object> queryparams = new hashmap<string, object>();
queryparams.put("x-image-process", "image/resize,m_fixed,w_100,h_100/rotate,100");
request.setqueryparams(queryparams);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
// 获取支持图片转码的下载链接
system.out.println("getting object using temporary signature url:");
system.out.println("signedurl:" response.getsignedurl());
} catch (obsexception e) {
system.out.println("getobject failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("getobject failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
代码示例:下载sse-c加密类型的对象
临时授权访问,利用httpmethodenum.get请求实现下载sse-c加密类型的对象,url有效期设置3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
import com.obs.services.obsclient;
import com.obs.services.exception.obsexception;
import com.obs.services.model.httpmethodenum;
import com.obs.services.model.temporarysignaturerequest;
import com.obs.services.model.temporarysignatureresponse;
import okhttp3.call;
import okhttp3.okhttpclient;
import okhttp3.request;
import okhttp3.response;
import java.util.hashmap;
import java.util.map;
public class getobject003 {
public static void main(string[] args) {
// 您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥ak/sk
string ak = system.getenv("access_key_id");
string sk = system.getenv("secret_access_key_id");
// 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
// 您可以通过环境变量获取访问密钥ak/sk/securitytoken,也可以使用其他外部引入方式传入。
// string securitytoken = system.getenv("security_token");
// endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
string endpoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 您可以通过环境变量获取endpoint,也可以使用其他外部引入方式传入。
//string endpoint = system.getenv("endpoint");
// 创建obsclient实例
// 使用永久ak/sk初始化客户端
obsclient obsclient = new obsclient(ak, sk,endpoint);
// 使用临时ak/sk和securitytoken初始化客户端
// obsclient obsclient = new obsclient(ak, sk, securitytoken, endpoint);
try {
// 下载sse-c加密类型的对象
// url有效期,3600秒
long expireseconds = 3600l;
temporarysignaturerequest request = new temporarysignaturerequest(httpmethodenum.get, expireseconds);
request.setbucketname("examplebucket");
request.setobjectkey("objectname");
// 设置sse-c加密方式的头域信息
map<string, string> headers = new hashmap<>();
headers.put("x-obs-server-side-encryption-customer-algorithm", "aes256");
// 设置加密使用的密钥,该头域由256-bit的密钥经过base64-encoded得到
headers.put(
"x-obs-server-side-encryption-customer-key",
"your base64 sse-c key generated by aes-256 algorithm");
// 设置加密使用的密钥的md5值,该头域由密钥的128-bit md5值经过base64-encoded得到
headers.put("x-obs-server-side-encryption-customer-key-md5", "the md5 value of your sse-c key");
request.setheaders(headers);
temporarysignatureresponse response = obsclient.createtemporarysignature(request);
system.out.println("getting object using temporary signature url:");
system.out.println("\t" response.getsignedurl());
request.builder builder = new request.builder();
for (map.entry<string, string> entry : response.getactualsignedrequestheaders().entryset()) {
builder.header(entry.getkey(), entry.getvalue());
}
// 使用get请求下载对象
request httprequest = builder.url(response.getsignedurl()).get().build();
okhttpclient httpclient =
new okhttpclient.builder()
.followredirects(false)
.retryonconnectionfailure(false)
.cache(null)
.build();
call c = httpclient.newcall(httprequest);
response res = c.execute();
system.out.println("status:" res.code());
if (res.body() != null) {
system.out.println("content:" res.body().string() "\n");
}
res.close();
system.out.println("getobject successfully");
} catch (obsexception e) {
system.out.println("getobject failed");
// 请求失败,打印http状态码
system.out.println("http code:" e.getresponsecode());
// 请求失败,打印服务端错误码
system.out.println("error code:" e.geterrorcode());
// 请求失败,打印详细错误信息
system.out.println("error message:" e.geterrormessage());
// 请求失败,打印请求id
system.out.println("request id:" e.geterrorrequestid());
system.out.println("host id:" e.geterrorhostid());
e.printstacktrace();
} catch (exception e) {
system.out.println("getobject failed");
// 其他异常信息打印
e.printstacktrace();
}
}
}
|
- httpmethodenum是obs java sdk定义的枚举类型,代表请求方法类型。
- 加密密钥的计算方式,可以参考章节:。
相关链接
- 更多url携带签名信息参考url中携带签名。
- 服务端加密接口返回的错误码含义、问题原因及处理措施可参考。
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨