client_test.go 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210
  1. // client test
  2. // use gocheck, install gocheck to execute "go get gopkg.in/check.v1",
  3. // see https://labix.org/gocheck
  4. package oss
  5. import (
  6. "log"
  7. "os"
  8. "testing"
  9. "time"
  10. . "gopkg.in/check.v1"
  11. )
  12. // Hook up gocheck into the "go test" runner.
  13. func Test(t *testing.T) {
  14. TestingT(t)
  15. }
  16. type OssClientSuite struct {}
  17. var _ = Suite(&OssClientSuite{})
  18. const (
  19. // Update before running test
  20. endpoint = "<testEndpoint>"
  21. accessID = "<testAccessID>"
  22. accessKey = "<testAccessKey>"
  23. bucketNamePrefix = "go-sdk-test-"
  24. )
  25. var (
  26. logPath = "go_sdk_test_" + time.Now().Format("20060102_150405") + ".log"
  27. testLogFile, _ = os.OpenFile(logPath, os.O_RDWR|os.O_CREATE, 0664)
  28. testLogger = log.New(testLogFile, "", log.Ldate|log.Ltime|log.Lshortfile)
  29. )
  30. // Run once when the suite starts running
  31. func (s *OssClientSuite) SetUpSuite(c *C) {
  32. testLogger.Println("test client started")
  33. }
  34. // Run before each test or benchmark starts running
  35. func (s *OssClientSuite) TearDownSuite(c *C) {
  36. testLogger.Println("test client completed")
  37. }
  38. // Run after each test or benchmark runs
  39. func (s *OssClientSuite) SetUpTest(c *C) {
  40. }
  41. // Run once after all tests or benchmarks have finished running
  42. func (s *OssClientSuite) TearDownTest(c *C) {
  43. }
  44. // TestCreateBucket
  45. func (s *OssClientSuite) TestCreateBucket(c *C) {
  46. var bucketNameTest = bucketNamePrefix + "tcb"
  47. client, err := New(endpoint, accessID, accessKey)
  48. c.Assert(err, IsNil)
  49. // Create
  50. client.DeleteBucket(bucketNameTest)
  51. err = client.CreateBucket(bucketNameTest)
  52. c.Assert(err, IsNil)
  53. // Check
  54. lbr, err := client.ListBuckets()
  55. c.Assert(err, IsNil)
  56. found := s.checkBucket(lbr.Buckets, bucketNameTest)
  57. c.Assert(found, Equals, true)
  58. res, err := client.GetBucketACL(bucketNameTest)
  59. c.Assert(err, IsNil)
  60. c.Assert(res.ACL, Equals, string(ACLPrivate))
  61. err = client.DeleteBucket(bucketNameTest)
  62. c.Assert(err, IsNil)
  63. // Create with ACLPublicRead
  64. err = client.CreateBucket(bucketNameTest, ACL(ACLPublicRead))
  65. c.Assert(err, IsNil)
  66. res, err = client.GetBucketACL(bucketNameTest)
  67. c.Assert(err, IsNil)
  68. c.Assert(res.ACL, Equals, string(ACLPublicRead))
  69. err = client.DeleteBucket(bucketNameTest)
  70. c.Assert(err, IsNil)
  71. // ACLPublicReadWrite
  72. err = client.CreateBucket(bucketNameTest, ACL(ACLPublicReadWrite))
  73. c.Assert(err, IsNil)
  74. res, err = client.GetBucketACL(bucketNameTest)
  75. c.Assert(err, IsNil)
  76. c.Assert(res.ACL, Equals, string(ACLPublicReadWrite))
  77. err = client.DeleteBucket(bucketNameTest)
  78. c.Assert(err, IsNil)
  79. // ACLPrivate
  80. err = client.CreateBucket(bucketNameTest, ACL(ACLPrivate))
  81. c.Assert(err, IsNil)
  82. res, err = client.GetBucketACL(bucketNameTest)
  83. c.Assert(err, IsNil)
  84. c.Assert(res.ACL, Equals, string(ACLPrivate))
  85. // Delete
  86. err = client.DeleteBucket(bucketNameTest)
  87. c.Assert(err, IsNil)
  88. }
  89. // TestCreateBucketNegative
  90. func (s *OssClientSuite) TestCreateBucketNegative(c *C) {
  91. client, err := New(endpoint, accessID, accessKey)
  92. c.Assert(err, IsNil)
  93. // BucketName invalid
  94. err = client.CreateBucket("xx")
  95. c.Assert(err, NotNil)
  96. err = client.CreateBucket("XXXX")
  97. c.Assert(err, NotNil)
  98. testLogger.Println(err)
  99. err = client.CreateBucket("_bucket")
  100. c.Assert(err, NotNil)
  101. testLogger.Println(err)
  102. // Acl invalid
  103. err = client.CreateBucket(bucketNamePrefix+"tcbn", ACL("InvaldAcl"))
  104. c.Assert(err, NotNil)
  105. testLogger.Println(err)
  106. }
  107. // TestDeleteBucket
  108. func (s *OssClientSuite) TestDeleteBucket(c *C) {
  109. var bucketNameTest = bucketNamePrefix + "tdb"
  110. client, err := New(endpoint, accessID, accessKey)
  111. c.Assert(err, IsNil)
  112. // Create
  113. err = client.CreateBucket(bucketNameTest)
  114. c.Assert(err, IsNil)
  115. // Check
  116. lbr, err := client.ListBuckets()
  117. c.Assert(err, IsNil)
  118. found := s.checkBucket(lbr.Buckets, bucketNameTest)
  119. c.Assert(found, Equals, true)
  120. // Delete
  121. err = client.DeleteBucket(bucketNameTest)
  122. c.Assert(err, IsNil)
  123. time.Sleep(time.Second * 1)
  124. // Check
  125. lbr, err = client.ListBuckets()
  126. c.Assert(err, IsNil)
  127. // Sometimes failed because of cache
  128. found = s.checkBucket(lbr.Buckets, bucketNameTest)
  129. // c.Assert(found, Equals, false)
  130. err = client.DeleteBucket(bucketNameTest)
  131. // c.Assert(err, IsNil)
  132. }
  133. // TestDeleteBucketNegative
  134. func (s *OssClientSuite) TestDeleteBucketNegative(c *C) {
  135. var bucketNameTest = bucketNamePrefix + "tdbn"
  136. client, err := New(endpoint, accessID, accessKey)
  137. c.Assert(err, IsNil)
  138. // BucketName invalid
  139. err = client.DeleteBucket("xx")
  140. c.Assert(err, NotNil)
  141. err = client.DeleteBucket("XXXX")
  142. c.Assert(err, NotNil)
  143. err = client.DeleteBucket("_bucket")
  144. c.Assert(err, NotNil)
  145. // Delete no exist
  146. err = client.DeleteBucket("notexist")
  147. c.Assert(err, NotNil)
  148. // No permission to delete, this ak/sk for js sdk
  149. err = client.CreateBucket(bucketNameTest)
  150. c.Assert(err, IsNil)
  151. accessID := "<AccessKeyId>"
  152. accessKey := "<AccessKeySecret>"
  153. clientOtherUser, err := New(endpoint, accessID, accessKey)
  154. c.Assert(err, IsNil)
  155. err = clientOtherUser.DeleteBucket(bucketNameTest)
  156. c.Assert(err, NotNil)
  157. err = client.DeleteBucket(bucketNameTest)
  158. c.Assert(err, IsNil)
  159. }
  160. // TestListBucket
  161. func (s *OssClientSuite) TestListBucket(c *C) {
  162. var bucketNameLbOne = bucketNamePrefix + "tlb1"
  163. var bucketNameLbTwo = bucketNamePrefix + "tlb2"
  164. var bucketNameLbThree = bucketNamePrefix + "tlb3"
  165. client, err := New(endpoint, accessID, accessKey)
  166. c.Assert(err, IsNil)
  167. // CreateBucket
  168. err = client.CreateBucket(bucketNameLbOne)
  169. c.Assert(err, IsNil)
  170. err = client.CreateBucket(bucketNameLbTwo)
  171. c.Assert(err, IsNil)
  172. err = client.CreateBucket(bucketNameLbThree)
  173. c.Assert(err, IsNil)
  174. // ListBuckets, specified prefix
  175. lbr, err := client.ListBuckets(Prefix(bucketNamePrefix), MaxKeys(2))
  176. c.Assert(err, IsNil)
  177. c.Assert(len(lbr.Buckets), Equals, 2)
  178. // ListBuckets, specified max keys
  179. lbr, err = client.ListBuckets(MaxKeys(2))
  180. c.Assert(err, IsNil)
  181. c.Assert(len(lbr.Buckets), Equals, 2)
  182. // ListBuckets, specified max keys
  183. lbr, err = client.ListBuckets(Marker(bucketNameLbOne), MaxKeys(1))
  184. c.Assert(err, IsNil)
  185. c.Assert(len(lbr.Buckets), Equals, 1)
  186. // ListBuckets, specified max keys
  187. lbr, err = client.ListBuckets(Marker(bucketNameLbOne))
  188. c.Assert(err, IsNil)
  189. c.Assert(len(lbr.Buckets) == 2 || len(lbr.Buckets) == 3, Equals, true)
  190. // DeleteBucket
  191. err = client.DeleteBucket(bucketNameLbOne)
  192. c.Assert(err, IsNil)
  193. err = client.DeleteBucket(bucketNameLbTwo)
  194. c.Assert(err, IsNil)
  195. err = client.DeleteBucket(bucketNameLbThree)
  196. c.Assert(err, IsNil)
  197. }
  198. // TestListBucket
  199. func (s *OssClientSuite) TestIsBucketExist(c *C) {
  200. var bucketNameLbOne = bucketNamePrefix + "tibe1"
  201. var bucketNameLbTwo = bucketNamePrefix + "tibe11"
  202. var bucketNameLbThree = bucketNamePrefix + "tibe111"
  203. client, err := New(endpoint, accessID, accessKey)
  204. c.Assert(err, IsNil)
  205. // CreateBucket
  206. err = client.CreateBucket(bucketNameLbOne)
  207. c.Assert(err, IsNil)
  208. err = client.CreateBucket(bucketNameLbTwo)
  209. c.Assert(err, IsNil)
  210. err = client.CreateBucket(bucketNameLbThree)
  211. c.Assert(err, IsNil)
  212. // exist
  213. exist, err := client.IsBucketExist(bucketNameLbTwo)
  214. c.Assert(err, IsNil)
  215. c.Assert(exist, Equals, true)
  216. exist, err = client.IsBucketExist(bucketNameLbThree)
  217. c.Assert(err, IsNil)
  218. c.Assert(exist, Equals, true)
  219. exist, err = client.IsBucketExist(bucketNameLbOne)
  220. c.Assert(err, IsNil)
  221. c.Assert(exist, Equals, true)
  222. // not exist
  223. exist, err = client.IsBucketExist(bucketNamePrefix + "tibe")
  224. c.Assert(err, IsNil)
  225. c.Assert(exist, Equals, false)
  226. exist, err = client.IsBucketExist(bucketNamePrefix + "tibe1111")
  227. c.Assert(err, IsNil)
  228. c.Assert(exist, Equals, false)
  229. // negative
  230. exist, err = client.IsBucketExist("BucketNameInvalid")
  231. c.Assert(err, NotNil)
  232. // DeleteBucket
  233. err = client.DeleteBucket(bucketNameLbOne)
  234. c.Assert(err, IsNil)
  235. err = client.DeleteBucket(bucketNameLbTwo)
  236. c.Assert(err, IsNil)
  237. err = client.DeleteBucket(bucketNameLbThree)
  238. c.Assert(err, IsNil)
  239. }
  240. // TestSetBucketAcl
  241. func (s *OssClientSuite) TestSetBucketAcl(c *C) {
  242. var bucketNameTest = bucketNamePrefix + "tsba"
  243. client, err := New(endpoint, accessID, accessKey)
  244. c.Assert(err, IsNil)
  245. // Private
  246. client.DeleteBucket(bucketNameTest)
  247. err = client.CreateBucket(bucketNameTest)
  248. c.Assert(err, IsNil)
  249. res, err := client.GetBucketACL(bucketNameTest)
  250. c.Assert(err, IsNil)
  251. c.Assert(res.ACL, Equals, string(ACLPrivate))
  252. // set ACL_PUBLIC_R
  253. err = client.SetBucketACL(bucketNameTest, ACLPublicRead)
  254. c.Assert(err, IsNil)
  255. res, err = client.GetBucketACL(bucketNameTest)
  256. c.Assert(err, IsNil)
  257. c.Assert(res.ACL, Equals, string(ACLPublicRead))
  258. // set ACL_PUBLIC_RW
  259. err = client.SetBucketACL(bucketNameTest, ACLPublicReadWrite)
  260. c.Assert(err, IsNil)
  261. res, err = client.GetBucketACL(bucketNameTest)
  262. c.Assert(err, IsNil)
  263. c.Assert(res.ACL, Equals, string(ACLPublicReadWrite))
  264. // set ACL_PUBLIC_RW
  265. err = client.SetBucketACL(bucketNameTest, ACLPrivate)
  266. c.Assert(err, IsNil)
  267. err = client.SetBucketACL(bucketNameTest, ACLPrivate)
  268. c.Assert(err, IsNil)
  269. res, err = client.GetBucketACL(bucketNameTest)
  270. c.Assert(err, IsNil)
  271. c.Assert(res.ACL, Equals, string(ACLPrivate))
  272. err = client.DeleteBucket(bucketNameTest)
  273. c.Assert(err, IsNil)
  274. }
  275. // TestSetBucketAclNegative
  276. func (s *OssClientSuite) TestBucketAclNegative(c *C) {
  277. var bucketNameTest = bucketNamePrefix + "tsban"
  278. client, err := New(endpoint, accessID, accessKey)
  279. c.Assert(err, IsNil)
  280. err = client.CreateBucket(bucketNameTest)
  281. c.Assert(err, IsNil)
  282. err = client.SetBucketACL(bucketNameTest, "InvalidACL")
  283. c.Assert(err, NotNil)
  284. testLogger.Println(err)
  285. err = client.DeleteBucket(bucketNameTest)
  286. c.Assert(err, IsNil)
  287. }
  288. // TestGetBucketAcl
  289. func (s *OssClientSuite) TestGetBucketAcl(c *C) {
  290. var bucketNameTest = bucketNamePrefix + "tgba"
  291. client, err := New(endpoint, accessID, accessKey)
  292. c.Assert(err, IsNil)
  293. // Private
  294. client.DeleteBucket(bucketNameTest)
  295. err = client.CreateBucket(bucketNameTest)
  296. c.Assert(err, IsNil)
  297. res, err := client.GetBucketACL(bucketNameTest)
  298. c.Assert(err, IsNil)
  299. c.Assert(res.ACL, Equals, string(ACLPrivate))
  300. err = client.DeleteBucket(bucketNameTest)
  301. c.Assert(err, IsNil)
  302. // PublicRead
  303. err = client.CreateBucket(bucketNameTest, ACL(ACLPublicRead))
  304. c.Assert(err, IsNil)
  305. res, err = client.GetBucketACL(bucketNameTest)
  306. c.Assert(err, IsNil)
  307. c.Assert(res.ACL, Equals, string(ACLPublicRead))
  308. err = client.DeleteBucket(bucketNameTest)
  309. c.Assert(err, IsNil)
  310. // PublicReadWrite
  311. err = client.CreateBucket(bucketNameTest, ACL(ACLPublicReadWrite))
  312. c.Assert(err, IsNil)
  313. res, err = client.GetBucketACL(bucketNameTest)
  314. c.Assert(err, IsNil)
  315. c.Assert(res.ACL, Equals, string(ACLPublicReadWrite))
  316. err = client.DeleteBucket(bucketNameTest)
  317. c.Assert(err, IsNil)
  318. }
  319. // TestGetBucketAcl
  320. func (s *OssClientSuite) TestGetBucketLocation(c *C) {
  321. var bucketNameTest = bucketNamePrefix + "tgbl"
  322. client, err := New(endpoint, accessID, accessKey)
  323. c.Assert(err, IsNil)
  324. // Private
  325. err = client.CreateBucket(bucketNameTest)
  326. c.Assert(err, IsNil)
  327. loc, err := client.GetBucketLocation(bucketNameTest)
  328. c.Assert(loc, Equals, "oss-cn-hangzhou")
  329. err = client.DeleteBucket(bucketNameTest)
  330. c.Assert(err, IsNil)
  331. }
  332. // TestGetBucketLocationNegative
  333. func (s *OssClientSuite) TestGetBucketLocationNegative(c *C) {
  334. var bucketNameTest = bucketNamePrefix + "tgblg"
  335. client, err := New(endpoint, accessID, accessKey)
  336. c.Assert(err, IsNil)
  337. // not exist
  338. _, err = client.GetBucketLocation(bucketNameTest)
  339. c.Assert(err, NotNil)
  340. // not exist
  341. _, err = client.GetBucketLocation("InvalidBucketName_")
  342. c.Assert(err, NotNil)
  343. }
  344. // TestSetBucketLifecycle
  345. func (s *OssClientSuite) TestSetBucketLifecycle(c *C) {
  346. var bucketNameTest = bucketNamePrefix + "tsbl"
  347. var rule1 = BuildLifecycleRuleByDate("idone", "one", true, 2015, 11, 11)
  348. var rule2 = BuildLifecycleRuleByDays("idtwo", "two", true, 3)
  349. client, err := New(endpoint, accessID, accessKey)
  350. c.Assert(err, IsNil)
  351. err = client.CreateBucket(bucketNameTest)
  352. c.Assert(err, IsNil)
  353. // set single rule
  354. var rules = []LifecycleRule{rule1}
  355. err = client.SetBucketLifecycle(bucketNameTest, rules)
  356. c.Assert(err, IsNil)
  357. // double set rule
  358. err = client.SetBucketLifecycle(bucketNameTest, rules)
  359. c.Assert(err, IsNil)
  360. res, err := client.GetBucketLifecycle(bucketNameTest)
  361. c.Assert(err, IsNil)
  362. c.Assert(len(res.Rules), Equals, 1)
  363. c.Assert(res.Rules[0].ID, Equals, "idone")
  364. err = client.DeleteBucketLifecycle(bucketNameTest)
  365. c.Assert(err, IsNil)
  366. // set two rules
  367. rules = []LifecycleRule{rule1, rule2}
  368. err = client.SetBucketLifecycle(bucketNameTest, rules)
  369. c.Assert(err, IsNil)
  370. res, err = client.GetBucketLifecycle(bucketNameTest)
  371. c.Assert(err, IsNil)
  372. c.Assert(len(res.Rules), Equals, 2)
  373. c.Assert(res.Rules[0].ID, Equals, "idone")
  374. c.Assert(res.Rules[1].ID, Equals, "idtwo")
  375. err = client.DeleteBucket(bucketNameTest)
  376. c.Assert(err, IsNil)
  377. }
  378. // TestDeleteBucketLifecycle
  379. func (s *OssClientSuite) TestDeleteBucketLifecycle(c *C) {
  380. var bucketNameTest = bucketNamePrefix + "tdbl"
  381. var rule1 = BuildLifecycleRuleByDate("idone", "one", true, 2015, 11, 11)
  382. var rule2 = BuildLifecycleRuleByDays("idtwo", "two", true, 3)
  383. var rules = []LifecycleRule{rule1, rule2}
  384. client, err := New(endpoint, accessID, accessKey)
  385. c.Assert(err, IsNil)
  386. err = client.CreateBucket(bucketNameTest)
  387. c.Assert(err, IsNil)
  388. err = client.DeleteBucketLifecycle(bucketNameTest)
  389. c.Assert(err, IsNil)
  390. err = client.SetBucketLifecycle(bucketNameTest, rules)
  391. c.Assert(err, IsNil)
  392. res, err := client.GetBucketLifecycle(bucketNameTest)
  393. c.Assert(err, IsNil)
  394. c.Assert(len(res.Rules), Equals, 2)
  395. // delete
  396. err = client.DeleteBucketLifecycle(bucketNameTest)
  397. c.Assert(err, IsNil)
  398. res, err = client.GetBucketLifecycle(bucketNameTest)
  399. c.Assert(err, NotNil)
  400. // eliminate effect of cache
  401. time.Sleep(time.Second * 3)
  402. // delete when not set
  403. err = client.DeleteBucketLifecycle(bucketNameTest)
  404. c.Assert(err, IsNil)
  405. err = client.DeleteBucket(bucketNameTest)
  406. c.Assert(err, IsNil)
  407. }
  408. // TestSetBucketLifecycleNegative
  409. func (s *OssClientSuite) TestBucketLifecycleNegative(c *C) {
  410. var bucketNameTest = bucketNamePrefix + "tsbln"
  411. var rules = []LifecycleRule{}
  412. client, err := New(endpoint, accessID, accessKey)
  413. c.Assert(err, IsNil)
  414. err = client.CreateBucket(bucketNameTest)
  415. c.Assert(err, IsNil)
  416. // set with no rule
  417. err = client.SetBucketLifecycle(bucketNameTest, rules)
  418. c.Assert(err, NotNil)
  419. err = client.DeleteBucket(bucketNameTest)
  420. c.Assert(err, IsNil)
  421. // not exist
  422. err = client.SetBucketLifecycle(bucketNameTest, rules)
  423. c.Assert(err, NotNil)
  424. // not exist
  425. _, err = client.GetBucketLifecycle(bucketNameTest)
  426. c.Assert(err, NotNil)
  427. // not exist
  428. err = client.DeleteBucketLifecycle(bucketNameTest)
  429. c.Assert(err, NotNil)
  430. }
  431. // TestSetBucketReferer
  432. func (s *OssClientSuite) TestSetBucketReferer(c *C) {
  433. var bucketNameTest = bucketNamePrefix + "tsbr"
  434. var referers = []string{"http://www.aliyun.com", "https://www.aliyun.com"}
  435. client, err := New(endpoint, accessID, accessKey)
  436. c.Assert(err, IsNil)
  437. err = client.CreateBucket(bucketNameTest)
  438. c.Assert(err, IsNil)
  439. res, err := client.GetBucketReferer(bucketNameTest)
  440. c.Assert(res.AllowEmptyReferer, Equals, true)
  441. c.Assert(len(res.RefererList), Equals, 0)
  442. // set referers
  443. err = client.SetBucketReferer(bucketNameTest, referers, false)
  444. c.Assert(err, IsNil)
  445. res, err = client.GetBucketReferer(bucketNameTest)
  446. c.Assert(res.AllowEmptyReferer, Equals, false)
  447. c.Assert(len(res.RefererList), Equals, 2)
  448. c.Assert(res.RefererList[0], Equals, "http://www.aliyun.com")
  449. c.Assert(res.RefererList[1], Equals, "https://www.aliyun.com")
  450. // reset referer, referers empty
  451. referers = []string{""}
  452. err = client.SetBucketReferer(bucketNameTest, referers, true)
  453. c.Assert(err, IsNil)
  454. referers = []string{}
  455. err = client.SetBucketReferer(bucketNameTest, referers, true)
  456. c.Assert(err, IsNil)
  457. res, err = client.GetBucketReferer(bucketNameTest)
  458. c.Assert(res.AllowEmptyReferer, Equals, true)
  459. c.Assert(len(res.RefererList), Equals, 0)
  460. err = client.DeleteBucket(bucketNameTest)
  461. c.Assert(err, IsNil)
  462. }
  463. // TestSetBucketRefererNegative
  464. func (s *OssClientSuite) TestBucketRefererNegative(c *C) {
  465. var bucketNameTest = bucketNamePrefix + "tsbrn"
  466. var referers = []string{""}
  467. client, err := New(endpoint, accessID, accessKey)
  468. c.Assert(err, IsNil)
  469. // not exist
  470. _, err = client.GetBucketReferer(bucketNameTest)
  471. c.Assert(err, NotNil)
  472. testLogger.Println(err)
  473. // not exist
  474. err = client.SetBucketReferer(bucketNameTest, referers, true)
  475. c.Assert(err, NotNil)
  476. testLogger.Println(err)
  477. }
  478. // TestSetBucketLogging
  479. func (s *OssClientSuite) TestSetBucketLogging(c *C) {
  480. var bucketNameTest = bucketNamePrefix + "tsbl"
  481. var bucketNameTarget = bucketNamePrefix + "tsblt"
  482. client, err := New(endpoint, accessID, accessKey)
  483. c.Assert(err, IsNil)
  484. err = client.CreateBucket(bucketNameTest)
  485. c.Assert(err, IsNil)
  486. err = client.CreateBucket(bucketNameTarget)
  487. c.Assert(err, IsNil)
  488. // set logging
  489. err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", true)
  490. c.Assert(err, IsNil)
  491. // reset
  492. err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", false)
  493. c.Assert(err, IsNil)
  494. res, err := client.GetBucketLogging(bucketNameTest)
  495. c.Assert(err, IsNil)
  496. c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
  497. c.Assert(res.LoggingEnabled.TargetPrefix, Equals, "")
  498. err = client.DeleteBucketLogging(bucketNameTest)
  499. c.Assert(err, IsNil)
  500. // set to self
  501. err = client.SetBucketLogging(bucketNameTest, bucketNameTest, "prefix", true)
  502. c.Assert(err, IsNil)
  503. err = client.DeleteBucket(bucketNameTest)
  504. c.Assert(err, IsNil)
  505. err = client.DeleteBucket(bucketNameTarget)
  506. c.Assert(err, IsNil)
  507. }
  508. // TestDeleteBucketLogging
  509. func (s *OssClientSuite) TestDeleteBucketLogging(c *C) {
  510. var bucketNameTest = bucketNamePrefix + "tdbl"
  511. var bucketNameTarget = bucketNamePrefix + "tdblt"
  512. client, err := New(endpoint, accessID, accessKey)
  513. c.Assert(err, IsNil)
  514. err = client.CreateBucket(bucketNameTest)
  515. c.Assert(err, IsNil)
  516. err = client.CreateBucket(bucketNameTarget)
  517. c.Assert(err, IsNil)
  518. // get when not set
  519. res, err := client.GetBucketLogging(bucketNameTest)
  520. c.Assert(err, IsNil)
  521. c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
  522. c.Assert(res.LoggingEnabled.TargetPrefix, Equals, "")
  523. // set
  524. err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", true)
  525. c.Assert(err, IsNil)
  526. // get
  527. res, err = client.GetBucketLogging(bucketNameTest)
  528. c.Assert(err, IsNil)
  529. c.Assert(res.LoggingEnabled.TargetBucket, Equals, bucketNameTarget)
  530. c.Assert(res.LoggingEnabled.TargetPrefix, Equals, "prefix")
  531. // set
  532. err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", false)
  533. c.Assert(err, IsNil)
  534. // get
  535. res, err = client.GetBucketLogging(bucketNameTest)
  536. c.Assert(err, IsNil)
  537. c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
  538. c.Assert(res.LoggingEnabled.TargetPrefix, Equals, "")
  539. // delete
  540. err = client.DeleteBucketLogging(bucketNameTest)
  541. c.Assert(err, IsNil)
  542. // get after delete
  543. res, err = client.GetBucketLogging(bucketNameTest)
  544. c.Assert(err, IsNil)
  545. c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
  546. c.Assert(res.LoggingEnabled.TargetPrefix, Equals, "")
  547. err = client.DeleteBucket(bucketNameTest)
  548. c.Assert(err, IsNil)
  549. err = client.DeleteBucket(bucketNameTarget)
  550. c.Assert(err, IsNil)
  551. }
  552. // TestSetBucketLoggingNegative
  553. func (s *OssClientSuite) TestSetBucketLoggingNegative(c *C) {
  554. var bucketNameTest = bucketNamePrefix + "tsbln"
  555. var bucketNameTarget = bucketNamePrefix + "tsblnt"
  556. client, err := New(endpoint, accessID, accessKey)
  557. c.Assert(err, IsNil)
  558. // not exist
  559. _, err = client.GetBucketLogging(bucketNameTest)
  560. c.Assert(err, NotNil)
  561. // not exist
  562. err = client.SetBucketLogging(bucketNameTest, "targetbucket", "prefix", true)
  563. c.Assert(err, NotNil)
  564. // not exist
  565. err = client.DeleteBucketLogging(bucketNameTest)
  566. c.Assert(err, NotNil)
  567. err = client.CreateBucket(bucketNameTest)
  568. c.Assert(err, IsNil)
  569. // target bucket not exist
  570. err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", true)
  571. c.Assert(err, NotNil)
  572. // err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", false)
  573. // c.Assert(err, NotNil)
  574. // parameter invalid
  575. err = client.SetBucketLogging(bucketNameTest, "XXXX", "prefix", true)
  576. c.Assert(err, NotNil)
  577. // err = client.SetBucketLogging(bucketNameTest, "XXXX", "prefix", false)
  578. // c.Assert(err, NotNil)
  579. err = client.SetBucketLogging(bucketNameTest, "xx", "prefix", true)
  580. c.Assert(err, NotNil)
  581. err = client.DeleteBucket(bucketNameTest)
  582. c.Assert(err, IsNil)
  583. }
  584. // TestSetBucketWebsite
  585. func (s *OssClientSuite) TestSetBucketWebsite(c *C) {
  586. var bucketNameTest = bucketNamePrefix + "tsbw"
  587. var indexWebsite = "myindex.html"
  588. var errorWebsite = "myerror.html"
  589. client, err := New(endpoint, accessID, accessKey)
  590. c.Assert(err, IsNil)
  591. err = client.CreateBucket(bucketNameTest)
  592. c.Assert(err, IsNil)
  593. // set
  594. err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
  595. c.Assert(err, IsNil)
  596. // double set
  597. err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
  598. c.Assert(err, IsNil)
  599. res, err := client.GetBucketWebsite(bucketNameTest)
  600. c.Assert(err, IsNil)
  601. c.Assert(res.IndexDocument.Suffix, Equals, indexWebsite)
  602. c.Assert(res.ErrorDocument.Key, Equals, errorWebsite)
  603. // reset
  604. err = client.SetBucketWebsite(bucketNameTest, "your"+indexWebsite, "your"+errorWebsite)
  605. c.Assert(err, IsNil)
  606. res, err = client.GetBucketWebsite(bucketNameTest)
  607. c.Assert(err, IsNil)
  608. c.Assert(res.IndexDocument.Suffix, Equals, "your"+indexWebsite)
  609. c.Assert(res.ErrorDocument.Key, Equals, "your"+errorWebsite)
  610. err = client.DeleteBucketWebsite(bucketNameTest)
  611. c.Assert(err, IsNil)
  612. // set after delete
  613. err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
  614. c.Assert(err, IsNil)
  615. res, err = client.GetBucketWebsite(bucketNameTest)
  616. c.Assert(err, IsNil)
  617. c.Assert(res.IndexDocument.Suffix, Equals, indexWebsite)
  618. c.Assert(res.ErrorDocument.Key, Equals, errorWebsite)
  619. err = client.DeleteBucket(bucketNameTest)
  620. c.Assert(err, IsNil)
  621. }
  622. // TestDeleteBucketWebsite
  623. func (s *OssClientSuite) TestDeleteBucketWebsite(c *C) {
  624. var bucketNameTest = bucketNamePrefix + "tdbw"
  625. var indexWebsite = "myindex.html"
  626. var errorWebsite = "myerror.html"
  627. client, err := New(endpoint, accessID, accessKey)
  628. c.Assert(err, IsNil)
  629. err = client.CreateBucket(bucketNameTest)
  630. c.Assert(err, IsNil)
  631. // get
  632. res, err := client.GetBucketWebsite(bucketNameTest)
  633. c.Assert(err, NotNil)
  634. // detele without set
  635. err = client.DeleteBucketWebsite(bucketNameTest)
  636. c.Assert(err, IsNil)
  637. // set
  638. err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
  639. c.Assert(err, IsNil)
  640. res, err = client.GetBucketWebsite(bucketNameTest)
  641. c.Assert(err, IsNil)
  642. c.Assert(res.IndexDocument.Suffix, Equals, indexWebsite)
  643. c.Assert(res.ErrorDocument.Key, Equals, errorWebsite)
  644. // detele
  645. err = client.DeleteBucketWebsite(bucketNameTest)
  646. c.Assert(err, IsNil)
  647. res, err = client.GetBucketWebsite(bucketNameTest)
  648. c.Assert(err, NotNil)
  649. // detele after delete
  650. err = client.DeleteBucketWebsite(bucketNameTest)
  651. c.Assert(err, IsNil)
  652. err = client.DeleteBucket(bucketNameTest)
  653. c.Assert(err, IsNil)
  654. }
  655. // TestSetBucketWebsiteNegative
  656. func (s *OssClientSuite) TestSetBucketWebsiteNegative(c *C) {
  657. var bucketNameTest = bucketNamePrefix + "tdbw"
  658. var indexWebsite = "myindex.html"
  659. var errorWebsite = "myerror.html"
  660. client, err := New(endpoint, accessID, accessKey)
  661. c.Assert(err, IsNil)
  662. err = client.DeleteBucket(bucketNameTest)
  663. // not exist
  664. _, err = client.GetBucketWebsite(bucketNameTest)
  665. c.Assert(err, NotNil)
  666. err = client.DeleteBucketWebsite(bucketNameTest)
  667. c.Assert(err, NotNil)
  668. err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
  669. c.Assert(err, NotNil)
  670. err = client.CreateBucket(bucketNameTest)
  671. c.Assert(err, IsNil)
  672. // set
  673. err = client.SetBucketWebsite(bucketNameTest, "myindex", "myerror")
  674. c.Assert(err, IsNil)
  675. res, err := client.GetBucketWebsite(bucketNameTest)
  676. c.Assert(err, IsNil)
  677. c.Assert(res.IndexDocument.Suffix, Equals, "myindex")
  678. c.Assert(res.ErrorDocument.Key, Equals, "myerror")
  679. // detele
  680. err = client.DeleteBucketWebsite(bucketNameTest)
  681. c.Assert(err, IsNil)
  682. _, err = client.GetBucketWebsite(bucketNameTest)
  683. c.Assert(err, NotNil)
  684. // detele after delete
  685. err = client.DeleteBucketWebsite(bucketNameTest)
  686. c.Assert(err, IsNil)
  687. err = client.DeleteBucket(bucketNameTest)
  688. c.Assert(err, IsNil)
  689. }
  690. // TestSetBucketWebsite
  691. func (s *OssClientSuite) TestSetBucketCORS(c *C) {
  692. var bucketNameTest = bucketNamePrefix + "tsbc"
  693. var rule1 = CORSRule{
  694. AllowedOrigin: []string{"*"},
  695. AllowedMethod: []string{"PUT", "GET", "POST"},
  696. AllowedHeader: []string{},
  697. ExposeHeader: []string{},
  698. MaxAgeSeconds: 100,
  699. }
  700. var rule2 = CORSRule{
  701. AllowedOrigin: []string{"http://www.a.com", "http://www.b.com"},
  702. AllowedMethod: []string{"GET"},
  703. AllowedHeader: []string{"Authorization"},
  704. ExposeHeader: []string{"x-oss-test", "x-oss-test1"},
  705. MaxAgeSeconds: 200,
  706. }
  707. client, err := New(endpoint, accessID, accessKey)
  708. c.Assert(err, IsNil)
  709. err = client.CreateBucket(bucketNameTest)
  710. c.Assert(err, IsNil)
  711. // set
  712. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule1})
  713. c.Assert(err, IsNil)
  714. gbcr, err := client.GetBucketCORS(bucketNameTest)
  715. c.Assert(err, IsNil)
  716. c.Assert(len(gbcr.CORSRules), Equals, 1)
  717. c.Assert(len(gbcr.CORSRules[0].AllowedOrigin), Equals, 1)
  718. c.Assert(len(gbcr.CORSRules[0].AllowedMethod), Equals, 3)
  719. c.Assert(len(gbcr.CORSRules[0].AllowedHeader), Equals, 0)
  720. c.Assert(len(gbcr.CORSRules[0].ExposeHeader), Equals, 0)
  721. c.Assert(gbcr.CORSRules[0].MaxAgeSeconds, Equals, 100)
  722. // double set
  723. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule1})
  724. c.Assert(err, IsNil)
  725. gbcr, err = client.GetBucketCORS(bucketNameTest)
  726. c.Assert(err, IsNil)
  727. c.Assert(len(gbcr.CORSRules), Equals, 1)
  728. c.Assert(len(gbcr.CORSRules[0].AllowedOrigin), Equals, 1)
  729. c.Assert(len(gbcr.CORSRules[0].AllowedMethod), Equals, 3)
  730. c.Assert(len(gbcr.CORSRules[0].AllowedHeader), Equals, 0)
  731. c.Assert(len(gbcr.CORSRules[0].ExposeHeader), Equals, 0)
  732. c.Assert(gbcr.CORSRules[0].MaxAgeSeconds, Equals, 100)
  733. // set rule2
  734. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule2})
  735. c.Assert(err, IsNil)
  736. gbcr, err = client.GetBucketCORS(bucketNameTest)
  737. c.Assert(err, IsNil)
  738. c.Assert(len(gbcr.CORSRules), Equals, 1)
  739. c.Assert(len(gbcr.CORSRules[0].AllowedOrigin), Equals, 2)
  740. c.Assert(len(gbcr.CORSRules[0].AllowedMethod), Equals, 1)
  741. c.Assert(len(gbcr.CORSRules[0].AllowedHeader), Equals, 1)
  742. c.Assert(len(gbcr.CORSRules[0].ExposeHeader), Equals, 2)
  743. c.Assert(gbcr.CORSRules[0].MaxAgeSeconds, Equals, 200)
  744. // reset
  745. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule1, rule2})
  746. c.Assert(err, IsNil)
  747. gbcr, err = client.GetBucketCORS(bucketNameTest)
  748. c.Assert(err, IsNil)
  749. c.Assert(len(gbcr.CORSRules), Equals, 2)
  750. // set after delete
  751. err = client.DeleteBucketCORS(bucketNameTest)
  752. c.Assert(err, IsNil)
  753. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule1, rule2})
  754. c.Assert(err, IsNil)
  755. gbcr, err = client.GetBucketCORS(bucketNameTest)
  756. c.Assert(err, IsNil)
  757. c.Assert(len(gbcr.CORSRules), Equals, 2)
  758. err = client.DeleteBucketCORS(bucketNameTest)
  759. c.Assert(err, IsNil)
  760. err = client.DeleteBucket(bucketNameTest)
  761. c.Assert(err, IsNil)
  762. }
  763. // TestSetBucketCORSNegative
  764. func (s *OssClientSuite) TestDeleteBucketCORS(c *C) {
  765. var bucketNameTest = bucketNamePrefix + "tdbc"
  766. var rule = CORSRule{
  767. AllowedOrigin: []string{"*"},
  768. AllowedMethod: []string{"PUT", "GET", "POST"},
  769. AllowedHeader: []string{},
  770. ExposeHeader: []string{},
  771. MaxAgeSeconds: 100,
  772. }
  773. client, err := New(endpoint, accessID, accessKey)
  774. c.Assert(err, IsNil)
  775. err = client.CreateBucket(bucketNameTest)
  776. c.Assert(err, IsNil)
  777. // delete not set
  778. err = client.DeleteBucketCORS(bucketNameTest)
  779. c.Assert(err, IsNil)
  780. // set
  781. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule})
  782. c.Assert(err, IsNil)
  783. _, err = client.GetBucketCORS(bucketNameTest)
  784. c.Assert(err, IsNil)
  785. // detele
  786. err = client.DeleteBucketCORS(bucketNameTest)
  787. c.Assert(err, IsNil)
  788. _, err = client.GetBucketCORS(bucketNameTest)
  789. c.Assert(err, NotNil)
  790. // detele after delete
  791. err = client.DeleteBucketCORS(bucketNameTest)
  792. c.Assert(err, IsNil)
  793. err = client.DeleteBucket(bucketNameTest)
  794. c.Assert(err, IsNil)
  795. }
  796. // TestSetBucketCORSNegative
  797. func (s *OssClientSuite) TestSetBucketCORSNegative(c *C) {
  798. var bucketNameTest = bucketNamePrefix + "tsbcn"
  799. var rule = CORSRule{
  800. AllowedOrigin: []string{"*"},
  801. AllowedMethod: []string{"PUT", "GET", "POST"},
  802. AllowedHeader: []string{},
  803. ExposeHeader: []string{},
  804. MaxAgeSeconds: 100,
  805. }
  806. client, err := New(endpoint, accessID, accessKey)
  807. c.Assert(err, IsNil)
  808. err = client.DeleteBucket(bucketNameTest)
  809. // not exist
  810. _, err = client.GetBucketCORS(bucketNameTest)
  811. c.Assert(err, NotNil)
  812. err = client.DeleteBucketCORS(bucketNameTest)
  813. c.Assert(err, NotNil)
  814. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule})
  815. c.Assert(err, NotNil)
  816. err = client.CreateBucket(bucketNameTest)
  817. c.Assert(err, IsNil)
  818. _, err = client.GetBucketCORS(bucketNameTest)
  819. c.Assert(err, NotNil)
  820. // set
  821. err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule})
  822. c.Assert(err, IsNil)
  823. _, err = client.GetBucketCORS(bucketNameTest)
  824. c.Assert(err, IsNil)
  825. // detele
  826. err = client.DeleteBucketCORS(bucketNameTest)
  827. c.Assert(err, IsNil)
  828. _, err = client.GetBucketCORS(bucketNameTest)
  829. c.Assert(err, NotNil)
  830. // detele after delete
  831. err = client.DeleteBucketCORS(bucketNameTest)
  832. c.Assert(err, IsNil)
  833. err = client.DeleteBucket(bucketNameTest)
  834. c.Assert(err, IsNil)
  835. }
  836. // TestEndpointFormat
  837. func (s *OssClientSuite) TestEndpointFormat(c *C) {
  838. var bucketNameTest = bucketNamePrefix + "tef"
  839. // http://host
  840. client, err := New(endpoint, accessID, accessKey)
  841. c.Assert(err, IsNil)
  842. err = client.CreateBucket(bucketNameTest)
  843. c.Assert(err, IsNil)
  844. res, err := client.GetBucketACL(bucketNameTest)
  845. c.Assert(err, IsNil)
  846. c.Assert(res.ACL, Equals, string(ACLPrivate))
  847. err = client.DeleteBucket(bucketNameTest)
  848. c.Assert(err, IsNil)
  849. // http://host:port
  850. client, err = New(endpoint+":80", accessID, accessKey)
  851. c.Assert(err, IsNil)
  852. err = client.CreateBucket(bucketNameTest)
  853. c.Assert(err, IsNil)
  854. res, err = client.GetBucketACL(bucketNameTest)
  855. c.Assert(err, IsNil)
  856. c.Assert(res.ACL, Equals, string(ACLPrivate))
  857. err = client.DeleteBucket(bucketNameTest)
  858. c.Assert(err, IsNil)
  859. }
  860. // TestCname
  861. func (s *OssClientSuite) _TestCname(c *C) {
  862. var bucketNameTest = "<my-bucket-cname>"
  863. client, err := New("<endpoint>", "<AccessKeyId>", "<AccessKeySecret>", UseCname(true))
  864. c.Assert(err, IsNil)
  865. err = client.CreateBucket(bucketNameTest)
  866. c.Assert(err, IsNil)
  867. _, err = client.ListBuckets()
  868. c.Assert(err, NotNil)
  869. res, err := client.GetBucketACL(bucketNameTest)
  870. c.Assert(err, IsNil)
  871. c.Assert(res.ACL, Equals, string(ACLPrivate))
  872. }
  873. // TestCname
  874. func (s *OssClientSuite) _TestCnameNegative(c *C) {
  875. var bucketNameTest = "<my-bucket-cname>"
  876. client, err := New("<endpoint>", "<AccessKeyId>", "<AccessKeySecret>", UseCname(true))
  877. c.Assert(err, IsNil)
  878. err = client.CreateBucket(bucketNameTest)
  879. c.Assert(err, NotNil)
  880. _, err = client.ListBuckets()
  881. c.Assert(err, NotNil)
  882. _, err = client.GetBucketACL(bucketNameTest)
  883. c.Assert(err, NotNil)
  884. }
  885. // TestHttps
  886. func (s *OssClientSuite) _TestHttps(c *C) {
  887. var bucketNameTest = "<my-bucket-https>"
  888. client, err := New("<endpoint>", "<AccessKeyId>", "<AccessKeySecret>")
  889. c.Assert(err, IsNil)
  890. err = client.CreateBucket(bucketNameTest)
  891. c.Assert(err, IsNil)
  892. res, err := client.GetBucketACL(bucketNameTest)
  893. c.Assert(err, IsNil)
  894. c.Assert(res.ACL, Equals, string(ACLPrivate))
  895. err = client.DeleteBucket(bucketNameTest)
  896. c.Assert(err, IsNil)
  897. }
  898. // TestClientOption
  899. func (s *OssClientSuite) TestClientOption(c *C) {
  900. var bucketNameTest = bucketNamePrefix + "tco"
  901. client, err := New(endpoint, accessID, accessKey, UseCname(true),
  902. Timeout(11, 12), SecurityToken("token"))
  903. c.Assert(err, IsNil)
  904. // Create
  905. err = client.CreateBucket(bucketNameTest)
  906. c.Assert(err, NotNil)
  907. c.Assert(client.Conn.config.HTTPTimeout.ConnectTimeout, Equals, time.Second*11)
  908. c.Assert(client.Conn.config.HTTPTimeout.ReadWriteTimeout, Equals, time.Second*12)
  909. c.Assert(client.Conn.config.HTTPTimeout.HeaderTimeout, Equals, time.Second*12)
  910. c.Assert(client.Conn.config.HTTPTimeout.LongTimeout, Equals, time.Second*12*10)
  911. c.Assert(client.Conn.config.SecurityToken, Equals, "token")
  912. c.Assert(client.Conn.config.IsCname, Equals, true)
  913. }
  914. // private
  915. func (s *OssClientSuite) checkBucket(buckets []BucketProperties, bucket string) bool {
  916. for _, v := range buckets {
  917. if v.Name == bucket {
  918. return true
  919. }
  920. }
  921. return false
  922. }