object_meta.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package sample
  2. import (
  3. "fmt"
  4. "strings"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. // ObjectMetaSample 展示了如何设置、读取文件元数据(object meta)
  8. func ObjectMetaSample() {
  9. // 创建Bucket
  10. bucket, err := GetTestBucket(bucketName)
  11. if err != nil {
  12. HandleError(err)
  13. }
  14. // 创建object
  15. err = bucket.PutObject(objectKey, strings.NewReader("YoursObjectValue"))
  16. if err != nil {
  17. HandleError(err)
  18. }
  19. // 场景:设置Bucket Meta,可以设置一个或多个属性。
  20. // 注意:Meta不区分大小写
  21. options := []oss.Option{
  22. oss.Expires(futureDate),
  23. oss.Meta("myprop", "mypropval")}
  24. err = bucket.SetObjectMeta(objectKey, options...)
  25. if err != nil {
  26. HandleError(err)
  27. }
  28. // 场景1:查看Object的meta,只返回少量基本meta信息,如ETag、Size、LastModified。
  29. props, err := bucket.GetObjectMeta(objectKey)
  30. if err != nil {
  31. HandleError(err)
  32. }
  33. fmt.Println("Object Meta:", props)
  34. // 场景2:查看Object的所有Meta,包括自定义的meta。
  35. props, err = bucket.GetObjectDetailedMeta(objectKey)
  36. if err != nil {
  37. HandleError(err)
  38. }
  39. fmt.Println("Expires:", props.Get("Expires"))
  40. // 场景3:查看Object的所有Meta,符合约束条件返回,不符合约束条件保存,包括自定义的meta。
  41. props, err = bucket.GetObjectDetailedMeta(objectKey, oss.IfUnmodifiedSince(futureDate))
  42. if err != nil {
  43. HandleError(err)
  44. }
  45. fmt.Println("MyProp:", props.Get("X-Oss-Meta-Myprop"))
  46. _, err = bucket.GetObjectDetailedMeta(objectKey, oss.IfModifiedSince(futureDate))
  47. if err == nil {
  48. HandleError(err)
  49. }
  50. goar, err := bucket.GetObjectACL(objectKey)
  51. if err != nil {
  52. HandleError(err)
  53. }
  54. fmt.Println("Object ACL:", goar.ACL)
  55. // 删除object和bucket
  56. err = DeleteTestBucketAndObject(bucketName)
  57. if err != nil {
  58. HandleError(err)
  59. }
  60. fmt.Println("ObjectMetaSample completed")
  61. }