Documentation
¶
Overview ¶
Example (AccountAPI) ¶
Example_accountAPI アカウントAPIの利用例
package main import ( "context" "fmt" objectstorage "github.com/sacloud/object-storage-api-go" ) const defaultServerURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0" var serverURL = defaultServerURL func main() { client := &objectstorage.Client{ APIRootURL: serverURL, // 省略可能 } ctx := context.Background() // サイトIDが必要なため取得しておく siteOp := objectstorage.NewSiteOp(client) sites, err := siteOp.List(ctx) if err != nil { panic(err) } siteId := sites[0].Id // アカウントの参照 accountOp := objectstorage.NewAccountOp(client) account, err := accountOp.Read(ctx, siteId) if err != nil { panic(err) } // アクセスキーの作成 accessKey, err := accountOp.CreateAccessKey(ctx, siteId) if err != nil { panic(err) } // アクセスキーの一覧 accessKeys, err := accountOp.ListAccessKeys(ctx, siteId) if err != nil { panic(err) } if len(accessKeys) == 0 { panic("ListAccessKeys failed") } // アクセスキーの削除 defer func() { if err := accountOp.DeleteAccessKey(ctx, siteId, accessKey.Id.String()); err != nil { panic(err) } }() fmt.Printf("AccountCode: %s, Secret: %s", account.Code, accessKey.Secret) }
Output: AccountCode: member@account@isk01, Secret: secret
Example (BucketAPI) ¶
Example_bucketAPI バケットAPIの利用例
package main import ( "context" "fmt" objectstorage "github.com/sacloud/object-storage-api-go" ) const defaultServerURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0" var serverURL = defaultServerURL func main() { client := &objectstorage.Client{ APIRootURL: serverURL, // 省略可能 } ctx := context.Background() // サイトIDが必要なため取得しておく siteOp := objectstorage.NewSiteOp(client) sites, err := siteOp.List(ctx) if err != nil { panic(err) } siteId := sites[0].Id // バケットの作成 bucketName := "your-bucket-name" bucketAPI := objectstorage.NewBucketOp(client) bucket, err := bucketAPI.Create(ctx, siteId, bucketName) if err != nil { panic(err) } // バケットの削除 defer func() { if err := bucketAPI.Delete(ctx, siteId, bucketName); err != nil { panic(err) } }() fmt.Println(bucket.Name) }
Output: your-bucket-name
Example (ClusterAPI) ¶
Example_clusterAPI サイト(クラスタ)APIの利用例
package main import ( "context" "fmt" objectstorage "github.com/sacloud/object-storage-api-go" ) const defaultServerURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0" var serverURL = defaultServerURL func main() { client := &objectstorage.Client{ APIRootURL: serverURL, // 省略可能 } // サイト一覧の取得 siteOp := objectstorage.NewSiteOp(client) sites, err := siteOp.List(context.Background()) if err != nil { panic(err) } fmt.Println(sites[0].DisplayName) }
Output: 石狩第1サイト
Example (PermissionAPI) ¶
Example_permissionAPI パーミッションAPIの利用例
package main import ( "context" "fmt" objectstorage "github.com/sacloud/object-storage-api-go" v1 "github.com/sacloud/object-storage-api-go/apis/v1" ) const defaultServerURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0" var serverURL = defaultServerURL func main() { client := &objectstorage.Client{ APIRootURL: serverURL, // 省略可能 } ctx := context.Background() // サイトIDが必要なため取得しておく siteOp := objectstorage.NewSiteOp(client) sites, err := siteOp.List(ctx) if err != nil { panic(err) } siteId := sites[0].Id // パーミッションの作成 permissionOp := objectstorage.NewPermissionOp(client) permission, err := permissionOp.Create(ctx, siteId, &v1.CreatePermissionParams{ BucketControls: v1.BucketControls{ { BucketName: "bucket1", CanRead: true, CanWrite: true, }, }, DisplayName: "foobar", }) if err != nil { panic(err) } // アクセスキーの作成 accessKey, err := permissionOp.CreateAccessKey(ctx, siteId, permission.Id.Int64()) if err != nil { panic(err) } // パーミッション/アクセスキーの削除 defer func() { if err := permissionOp.DeleteAccessKey(ctx, siteId, permission.Id.Int64(), accessKey.Id.String()); err != nil { panic(err) } if err := permissionOp.Delete(ctx, siteId, permission.Id.Int64()); err != nil { panic(err) } }() fmt.Printf("Permission: %s, Secret: %s", permission.DisplayName, accessKey.Secret) }
Output: Permission: foobar, Secret: secret
Example (SiteStatusAPI) ¶
Example_siteStatusAPI サイトステータスAPIの利用例
package main import ( "context" "fmt" objectstorage "github.com/sacloud/object-storage-api-go" ) const defaultServerURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0" var serverURL = defaultServerURL func main() { client := &objectstorage.Client{ APIRootURL: serverURL, // 省略可能 } ctx := context.Background() // サイトIDが必要なため取得しておく siteOp := objectstorage.NewSiteOp(client) sites, err := siteOp.List(ctx) if err != nil { panic(err) } siteId := sites[0].Id // サイトステータスの参照 statusOp := objectstorage.NewSiteStatusOp(client) status, err := statusOp.Read(ctx, siteId) if err != nil { panic(err) } fmt.Println(status.StatusCode.Status) }
Output: ok
Index ¶
Examples ¶
Constants ¶
View Source
const DefaultAPIRootURL = "https://secure.sakura.ad.jp/cloud/zone/is1a/api/objectstorage/1.0"
DefaultAPIRootURL デフォルトのAPIルートURL
Variables ¶
View Source
var ( // Version app version Version = "v0.0.9" // Revision git commit short commit hash Revision = "xxxxxx" // set on build time )
View Source
var UserAgent = fmt.Sprintf( "object-storage-api-go/%s (%s/%s; +https://github.com/sacloud/object-storage-api-go) %s", Version, runtime.GOOS, runtime.GOARCH, client.DefaultUserAgent, )
UserAgent APIリクエスト時のユーザーエージェント
Functions ¶
This section is empty.
Types ¶
type AccountAPI ¶
type AccountAPI interface { // Create アカウントの作成 Create(ctx context.Context, siteId string) (*v1.Account, error) // Read アカウントの参照 Read(ctx context.Context, siteId string) (*v1.Account, error) // Delete アカウントの削除 Delete(ctx context.Context, siteId string) error // ListAccessKeys アクセスキーの参照 // // Secretは常に空文字になっている ListAccessKeys(ctx context.Context, siteId string) ([]*v1.AccountKey, error) // CreateAccessKey アクセスキーの作成 // // Secretはこの戻り値でのみ参照可能 CreateAccessKey(ctx context.Context, siteId string) (*v1.AccountKey, error) // ReadAccessKey アクセスキーの参照 // // Secretは常に空文字になっている ReadAccessKey(ctx context.Context, siteId, accessKeyId string) (*v1.AccountKey, error) // DeleteAccessKey アクセスキーの削除 DeleteAccessKey(ctx context.Context, siteId, accessKeyId string) error }
AccountAPI アカウント操作関連API
type BucketAPI ¶
type BucketAPI interface { // Create バケットの作成 Create(ctx context.Context, siteId, bucketName string) (*v1.Bucket, error) // Delete バケットの削除 Delete(ctx context.Context, siteId, bucketName string) error }
BucketAPI バケット操作関連API
type Client ¶
type Client struct { // Profile usacloud互換プロファイル名 Profile string // Token APIキー: トークン Token string // Token APIキー: シークレット Secret string // APIRootURL APIのリクエスト先URLプレフィックス、省略可能 APIRootURL string // Options HTTPクライアント関連オプション Options *client.Options // DisableProfile usacloud互換プロファイルからの設定読み取りを無効化 DisableProfile bool // DisableEnv 環境変数からの設定読み取りを無効化 DisableEnv bool // contains filtered or unexported fields }
Client APIクライアント
type PermissionAPI ¶
type PermissionAPI interface { List(ctx context.Context, siteId string) ([]*v1.Permission, error) // Create パーミッションの作成 Create(ctx context.Context, siteId string, params *v1.CreatePermissionParams) (*v1.Permission, error) // Read パーミッションの参照 Read(ctx context.Context, siteId string, permissionId int64) (*v1.Permission, error) // Update パーミッションの更新 Update(ctx context.Context, siteId string, permissionId int64, params *v1.UpdatePermissionParams) (*v1.Permission, error) // Delete パーミッションの削除 Delete(ctx context.Context, siteId string, permissionId int64) error // ListAccessKeys アクセスキー一覧 ListAccessKeys(ctx context.Context, siteId string, permissionId int64) ([]*v1.PermissionKey, error) // CreateAccessKey アクセスキーの作成 // // Secretはこの戻り値でのみ参照可能 CreateAccessKey(ctx context.Context, siteId string, permissionId int64) (*v1.PermissionKey, error) // ReadAccessKey アクセスキーの参照 // // Secretは常に空文字になっている ReadAccessKey(ctx context.Context, siteId string, permissionId int64, accessKeyId string) (*v1.PermissionKey, error) // DeleteAccessKey アクセスキーの削除 DeleteAccessKey(ctx context.Context, siteId string, permissionId int64, accessKeyId string) error }
PermissionAPI パーミッション関連API
func NewPermissionOp ¶
func NewPermissionOp(client *Client) PermissionAPI
NewPermissionOp パーミッション関連API
type SiteAPI ¶
type SiteAPI interface { // List サイト一覧 List(ctx context.Context) ([]*v1.Cluster, error) // Read サイト詳細 Read(ctx context.Context, siteId string) (*v1.Cluster, error) }
SiteAPI サイト(クラスター)関連API
type SiteStatusAPI ¶
type SiteStatusAPI interface { // Read サイトステータスの参照 Read(ctx context.Context, siteId string) (*v1.Status, error) }
SiteStatusAPI サイトステータスAPI
func NewSiteStatusOp ¶
func NewSiteStatusOp(client *Client) SiteStatusAPI
NewSiteStatusOp サイトステータスAPI
Source Files
¶
Click to show internal directories.
Click to hide internal directories.