1
0

More than 1 year has passed since last update.

Go言語向けNCMB SDKの使い方(ファイルストアの使い方)

Posted at

NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。

そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。

今回はGo言語向けのSDK開発をはじめたので、その使い方を紹介します。この記事ではファイルストアの使い方を解説します。

ソースコード

ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。

NCMBMania/ncmb_go

インストール

SDKのインストールは下記コマンドで行います。

go get -u github.com/NCMBMania/ncmb_go

インポート

続けてSDKをインポートします。

import (
    "github.com/NCMBMania/ncmb_go"
)

初期化

NCMBより取得したアプリケーションキー、クライアントキーを使って初期化します。

ncmb := NCMB.Initialize("YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY")

ファイルストアの使い方

ファイルアップロードはFileメソッドから開始します。引数はファイル名です。

file := ncmb.File("test.txt")

ファイルの内容はバイト文字列を付与します。

text := []byte("Hello, NCMB!")
file.Bytes = text

コンテンツを適用したら、 Upload メソッドでアップロードを行います。ファイルのmime typeはバイト文字列から自動的に決定します。

bol, err := file.Upload()
if err != nil {
	t.Errorf("file.Upload() = %T, %s", bol, err)
}

ファイルの内容を更新する

ファイルの内容を更新する場合は Upload を利用します。

text := []byte("更新内容")
file.Bytes = text
bol, err := file.Upload()
if err != nil {
	t.Errorf("file.Upload() = %T, %s", bol, err)
}

ファイルのACLを更新する

ファイルの内容ではなく、ACL(アクセス権限)を更新する場合には Update メソッドを使います。

acl, err := file.GetAcl()
if err != nil {
	t.Errorf("file.GetAcl() = %T, %s", acl, err)
}
acl.SetRoleReadAccess("Admin", true)
file.SetAcl(acl)
bol, err = file.Update()
if err != nil {
	t.Errorf("file.Update() = %T, %s", bol, err)
}

新規作成する際には、元々Aclを適用してください。

file := ncmb.File("test.txt")
text := []byte("Hello, NCMB!")
file.Bytes = text
acl := ncmb.Acl()
acl.SetRoleReadAccess("Admin", true)
file.SetAcl(acl)
bol, err := file.Upload()
if err != nil {
	t.Errorf("file.Upload() = %T, %s", bol, err)
}

ファイルのダウンロード

ファイルをダウンロードする際には Download メソッドを使います。ダウンロードされる内容はバイト文字列なので、必要に応じて変換してください。

data, err := file.Download()
if err != nil {
	t.Errorf("file.Download() = %s", err)
}

ファイルの削除

ファイルの削除は Delete メソッドを使います。

bol, err := file.Delete()

まとめ

まだ基本的な機能しかありませんが、徐々にバージョンアップしていきます。

Go言語を使ってWebアプリケーションを開発している方は、そのデータ保存先としてNCMBを利用してみてください。

mBaaSでサーバー開発不要! | ニフクラ mobile backend

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0