Skip to content

Commit 756d655

Browse files
learningZhangnedzzhangweiyankongodelia-k
authored
region校验防止拼接跳转 (#46)
* dev_tidy (merge request !28) Squash merge branch 'dev_tidy_e8e91608' into 'master' * 预签名下载不做路径校验 * dev_signUrlDownloadFix (merge request !31) Squash merge branch 'dev_signUrlDownloadFix' into 'master' * 状态判断后写入文件 * update * 404下载创建文件 * dev_bucketPolicy (merge request !34) Squash merge branch 'dev_bucketPolicy' into 'master' * dev_optimDemoAndDocNew (merge request !35) Squash merge branch 'dev_optimDemoAndDocNew' into 'master' bucket policy逻辑更新到github上 * 更新版本 (merge request !36) Squash merge branch 'dev_addVersiion' into 'master' * add interface * add interface * add interface * add request * dev_optdemo (merge request !41) Squash merge branch 'dev_optdemo' into 'master' * modify version (merge request !42) Squash merge branch 'dev_ci_doc' into 'master' modify verison * dev_demoopt13 (merge request !43) Squash merge branch 'dev_demoopt13' into 'master' * dev_demoopt14 (merge request !45) Squash merge branch 'dev_demoopt14' into 'master' * dev_demo0919 (merge request !46) Squash merge branch 'dev_demo0919' into 'master' * region校验 * 更新版本 --------- Co-authored-by: nedzzhang <nedzzhang@tencent.com> Co-authored-by: weiyankong <weiyankong@outlook.com> Co-authored-by: weiyankong <weiyankong@tencent.com>
1 parent 023a68f commit 756d655

File tree

10 files changed

+70
-49
lines changed

10 files changed

+70
-49
lines changed

QCloudCSharpSDK/COSXML/COSXML-Netcore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<Deterministic>true</Deterministic>
1212

1313
<PackageId>Tencent.QCloud.Cos.Sdk</PackageId>
14-
<Version>5.4.40.0</Version>
14+
<Version>5.4.41.0</Version>
1515
<Authors>Tencent</Authors>
1616
<Company>Tencent</Company>
1717
<description>Tencent Cloud COS(Cloud Object Service) .Net SDK</description>

QCloudCSharpSDK/COSXML/Common/CosVersion.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ namespace COSXML.Common
99
{
1010
public sealed class CosVersion
1111
{
12-
private static string SDKVersion = "5.4.40.0";
12+
13+
private static string SDKVersion = "5.4.41.0";
1314

1415
public static string GetUserAgent()
1516
{

QCloudCSharpSDK/COSXML/CosXmlConfig.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ public Builder SetRegion(string region)
157157
"region cannot be empty"
158158
);
159159
}
160+
if (region.Contains("@"))
161+
{
162+
throw new CosException.CosClientException((int)COSXML.Common.CosClientError.InvalidArgument,
163+
"region中不能包含特殊字符@");
164+
}
160165
this.region = region;
161166

162167
return this;

QCloudCSharpSDK/COSXMLDemo/AccessManage/BucketPolicy.cs

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ private void InitCosXml()
3838
//获取桶的策略
3939
public void GetBucketPolicy()
4040
{
41-
// string bucket = "examplebucket-1250000000";
41+
string bucket = "examplebucket-1250000000";
4242
GetBucketPolicyRequest request = new GetBucketPolicyRequest(bucket);
4343
GetBucketPolicyResult result = cosXml.GetBucketPolicy(request);
4444
Console.WriteLine(result.Data); //返回数据,json格式
@@ -48,7 +48,7 @@ public void GetBucketPolicy()
4848
//删除桶的策略
4949
public void DeleteBucketPolicy()
5050
{
51-
// string bucket = "examplebucket-1250000000";
51+
string bucket = "examplebucket-1250000000";
5252
DeleteBucketPolicyRequest request = new DeleteBucketPolicyRequest(bucket);
5353
DeleteBucketPolicyResult result = cosXml.DeleteBucketPolicy(request);
5454
Console.WriteLine(result.GetResultInfo());
@@ -57,32 +57,38 @@ public void DeleteBucketPolicy()
5757
//设置桶的策略
5858
public void PutBucketPolicy()
5959
{
60+
string bucket = "examplebucket-1250000000";
6061
PutBucketPolicyRequest request = new PutBucketPolicyRequest(bucket);
6162
// string region = Environment.GetEnvironmentVariable("COS_REGION");
6263
// string appId = Environment.GetEnvironmentVariable("APPID");
6364
// string resource = "qcs::cos:" + region + ":uid/" + appId + ":" + bucket + "/*";
64-
// string policy = "{\"Statement\":[{\"Action\":[\"name/cos:PutBucketPolicy\",\"name/cos:GetBucketPolicy\",\"name/cos:DeleteBucketPolicy\"],\"Effect\":\"Allow\",\"Principal\":{\"qcs\":[\"qcs::cam::uin/2832742109:uin/100032069732\"]},\"Resource\":[\"" + resource + "\"]}],\"Version\":\"2.0\"}";
65+
// long mainUin = 283274210;
66+
// long subUin = 10003206973;
67+
// string qcs = "qcs::cam::uin/" + mainUin + ":uin/" + subUin;
68+
// string policy = "{\"Statement\":[{\"Action\":[\"name/cos:PutBucketPolicy\",\"name/cos:GetBucketPolicy\",\"name/cos:DeleteBucketPolicy\"],\"Effect\":\"Allow\",\"Principal\":{\"qcs\":[\"" + qcs + "\"]},\"Resource\":[\"" + resource + "\"]}],\"Version\":\"2.0\"}";
69+
// Console.WriteLine(policy);
70+
6571
string policy = @"{
66-
""Statement"": [
67-
{
68-
""Action"": [
69-
""name/cos:PutBucketPolicy"",
70-
""name/cos:GetBucketPolicy"",
71-
""name/cos:DeleteBucketPolicy""
72-
],
73-
""Effect"": ""Allow"",
74-
""Principal"": {
75-
""qcs"": [
76-
""qcs::cam::uin/100000000011:uin/100000000011""
77-
]
78-
},
79-
""Resource"": [
80-
""qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*""
81-
]
82-
}
83-
],
84-
""Version"": ""2.0""
85-
}";
72+
""Statement"": [
73+
{
74+
""Action"": [
75+
""name/cos:PutBucketPolicy"",
76+
""name/cos:GetBucketPolicy"",
77+
""name/cos:DeleteBucketPolicy""
78+
],
79+
""Effect"": ""Allow"",
80+
""Principal"": {
81+
""qcs"": [
82+
""qcs::cam::uin/100000000001:uin/100000000002""
83+
]
84+
},
85+
""Resource"": [
86+
""qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*""
87+
]
88+
}
89+
],
90+
""Version"": ""2.0""
91+
}";
8692
request.SetBucketPolicy(policy);
8793
PutBucketPolicyResult result = cosXml.PutBucketPolicy(request);
8894
Console.WriteLine(result.GetResultInfo());
@@ -91,8 +97,8 @@ public void PutBucketPolicy()
9197
public static void BucketPolicyMain()
9298
{
9399
BucketPolicyModel demo = new BucketPolicyModel();
94-
// demo.PutBucketPolicy();
95-
demo.GetBucketPolicy();
100+
demo.PutBucketPolicy();
101+
// demo.GetBucketPolicy();
96102
// demo.DeleteBucketPolicy();
97103
}
98104
}

QCloudCSharpSDK/COSXMLDemo/DateManage/BucketTagging.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,14 @@ public void GetBucketTagging()
7777
//执行请求
7878
GetBucketTaggingResult result = cosXml.GetBucketTagging(request);
7979
//请求成功
80-
Tagging tagging = result.tagging;
81-
Console.WriteLine(tagging);
80+
if (result.tagging != null)
81+
{
82+
foreach (var tag in result.tagging.tagSet.tags)
83+
{
84+
Console.WriteLine("key {0} value {1}", tag.key, tag.value);
85+
}
86+
}
87+
Console.WriteLine(result.GetResultInfo());
8288
}
8389
catch (COSXML.CosException.CosClientException clientEx)
8490
{

QCloudCSharpSDK/COSXMLDemo/DateManage/BucketWebsite.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,4 @@ public static void BucketWebsiteMain()
122122

123123
}
124124
}
125-
}
125+
}

QCloudCSharpSDK/COSXMLDemo/DateManage/ObjectTagging.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void GetObjectTagging()
4242
try
4343
{
4444
// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developer
45-
// string bucket = "examplebucket-1250000000";
45+
string bucket = "examplebucket-1250000000";
4646
string key = "exampleobject"; //对象键
4747
GetObjectTaggingRequest request = new GetObjectTaggingRequest(bucket, key);
4848
// 执行请求
@@ -72,7 +72,7 @@ public void DeleteObjectTagging()
7272
try
7373
{
7474
// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developer
75-
// string bucket = "examplebucket-1250000000";
75+
string bucket = "examplebucket-1250000000";
7676
string key = "exampleobject"; //对象键
7777
DeleteObjectTaggingRequest request = new DeleteObjectTaggingRequest(bucket, key);
7878
// 执行请求
@@ -95,7 +95,7 @@ public void PutObjectTagging()
9595
try
9696
{
9797
// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developer
98-
// string bucket = "examplebucket-1250000000";
98+
string bucket = "examplebucket-1250000000";
9999
string key = "exampleobject"; //对象键
100100
PutObjectTaggingRequest request = new PutObjectTaggingRequest(bucket, key);
101101
// 增加标签键值对

QCloudCSharpSDK/COSXMLDemo/MainProcess.cs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System;
2+
13
namespace COSXMLDemo
24
{
35
public class Process
@@ -10,10 +12,10 @@ static void Main(string[] args)
1012
}
1113

1214
public void DoSomething()
13-
{
14-
// BucketPolicy.BucketPolicyMain();
15+
{
16+
// BucketPolicyModel.BucketPolicyMain();
1517
// DownloadObject.DownloadObjectMain();
16-
// UploadObject.UploadObjectMain();
18+
UploadObject.UploadObjectMain();
1719
// GetObjectUrlDemo.GetObjectUrlDemoMain();
1820

1921
// DeleteObjectModel.DeleteObjectModelMain();
@@ -24,24 +26,26 @@ public void DoSomething()
2426
// HeadObjectModel.HeadObjectMain();
2527
// ObjectRestoreModel.ObjectRestoreModelMain();
2628
// GetObjectUrlDemo.GetObjectUrlDemoMain();
27-
29+
2830
// CreateBucketModel.CreateBucketModelMain();//
2931
// DeleteBucketModel.DeleteObjectModelMain();//
3032
// DoesBucketExistModel.DoesBucketExistModelMain();//
3133
// HeadBucketModel.HeadBucketModelMain();//
3234
// ListBucketModel.ListBucketModelMain();//
3335
// BucketPolicyModel.BucketPolicyMain();
34-
36+
3537
// BucketVersioningModel.BucketVersioningMain();//
3638
// BucketLifecycleModel.BucketLifecycleMain();
3739
// BucketReplicationModel.BucketReplicationMain();
3840
// BucketLoggingModel.BucketLoggingMain();
39-
40-
ObjectTaggingModel.ObjectTaggingMain();
41-
BucketInventoryModel.BucketInventoryMain();
42-
BucketDomainModel.BucketDomainMain();
43-
PutObjectACLModel.PutObjectACLMain();//
44-
BucketRefererModel.BucketRefererMain();//
41+
42+
// BucketTaggingModel.BucketTaggingMain();
43+
// ObjectTaggingModel.ObjectTaggingMain();
44+
// BucketInventoryModel.BucketInventoryMain();
45+
// BucketDomainModel.BucketDomainMain();
46+
// PutObjectACLModel.PutObjectACLMain();//
47+
// BucketRefererModel.BucketRefererMain();//
48+
// BucketWebsiteModel.BucketWebsiteMain();
4549
}
4650

4751
public void SetEnvironmentVariable()

QCloudCSharpSDK/COSXMLDemo/Object/CopyObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,4 +436,4 @@ public static void CopyObjectModelMain()
436436
demo.MoveObject().Wait();
437437
}
438438
}
439-
}
439+
}

QCloudCSharpSDK/COSXMLDemo/Object/GetObjectUrl.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,7 @@ public void GetObjectUrl()
139139
{
140140
// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developer
141141
string bucket = "examplebucket-1250000000";
142-
string key = "exampleobject"; //对象键
143-
142+
string key = "object"; //对象键
144143
// 生成链接(默认域名访问)
145144
String url = cosXml.GetObjectUrl(bucket, key);
146145
Console.WriteLine("Object Url is: " + url);
@@ -263,11 +262,11 @@ public static void GetObjectUrlDemoMain()
263262
// // 获取预签名上传链接
264263
// demo.GetPreSignUploadUrl();
265264
// 获取无签名访问链接
266-
// demo.GetObjectUrl(); //done
265+
demo.GetObjectUrl(); //done
267266
// 生成预签名 URL,并在签名中携带 Host
268267
// demo.GetPreSignUrlWithHost();
269268
// // 生成预签名URL,并在签名中携带请求参数
270269
// demo.GetPreSignUrlWithReqParam();
271270
}
272271
}
273-
}
272+
}

0 commit comments

Comments
 (0)