account.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package datahub
  2. /*
  3. only support aliyun account now
  4. */
  5. import (
  6. "fmt"
  7. )
  8. type Account interface {
  9. fmt.Stringer
  10. GetAccountId() string
  11. GetAccountKey() string
  12. GetSecurityToken() string
  13. }
  14. type AliyunAccount struct {
  15. // Aliyun Access key ID
  16. AccessId string
  17. // Aliyun Secret Access Key
  18. AccessKey string
  19. }
  20. // create new instance
  21. func NewAliyunAccount(accessId, accessKey string) *AliyunAccount {
  22. return &AliyunAccount{
  23. AccessId: accessId,
  24. AccessKey: accessKey,
  25. }
  26. }
  27. func (a AliyunAccount) String() string {
  28. return fmt.Sprintf("accessId: %s, accessKey: %s", a.AccessId, a.AccessKey)
  29. }
  30. func (a AliyunAccount) GetAccountId() string {
  31. return a.AccessId
  32. }
  33. func (a AliyunAccount) GetAccountKey() string {
  34. return a.AccessKey
  35. }
  36. func (a AliyunAccount) GetSecurityToken() string {
  37. return ""
  38. }
  39. type StsCredential struct {
  40. // Access key ID
  41. AccessId string
  42. // Secret Access Key
  43. AccessKey string
  44. // Security Token
  45. SecurityToken string
  46. }
  47. // create new instance
  48. func NewStsCredential(accessId, accessKey, securityToken string) *StsCredential {
  49. return &StsCredential{
  50. AccessId: accessId,
  51. AccessKey: accessKey,
  52. SecurityToken: securityToken,
  53. }
  54. }
  55. func (a StsCredential) String() string {
  56. return fmt.Sprintf("accessId: %s, accessKey: %s, securityToken: %s", a.AccessId, a.AccessKey, a.SecurityToken)
  57. }
  58. func (a StsCredential) GetAccountId() string {
  59. return a.AccessId
  60. }
  61. func (a StsCredential) GetAccountKey() string {
  62. return a.AccessKey
  63. }
  64. func (a StsCredential) GetSecurityToken() string {
  65. return a.SecurityToken
  66. }