サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >ファイルストア(Kotlin):基本的な使い方

ファイルストア(Kotlin)

基本的な使い方

概要

このページでは、ファイルストアの基本的な使い方について説明します。

アプリからの操作

ファイルの保存

ファイルストア機能を利用する場合はNCMBFileを使用します。
以下のようにファイルストアへのアップロードを行います。

※注意

アップロードするファイルの名前にはルールがありますので、ご注意ください。
詳細は、開発ガイドライン:ファイルストアについてをご参照ください。

fileDataプロパティにはjava.io.Fileのオブジェクトを指定する必要があります。
事前にファイルを作成する場合のサンプルコードは以下をご参照ください。

import java.io.File
import com.nifcloud.mbaas.core.NCMBFile
<<省略>>

// 事前にアップロードファイルを用意します。
//Androidアプリ内のストレージにファイル作成の参考ドキュメント:https://developer.android.com/training/data-storage/app-specific#kotlin
val filename = "tempFile.txt"
val fileContents = "Hello world!"
this.openFileOutput(filename, Context.MODE_PRIVATE).use {
    it.write(fileContents.toByteArray())
}

val file = File(this.filesDir, filename) //※こちらのthis.filesDir はアプリcontextであり、NCMB.initialize(this)と同じthisを利用します
val fileObj = NCMBFile("tempFile.txt")
fileObj.fileData = file
// ファイルストアへの登録を実施
fileObj.saveInBackground(NCMBCallback { e, ncmbFile ->
    if (e != null) {
        //登録に失敗した場合の処理
    } else {
        //登録に成功した場合の処理
    }
})

ファイルを保存する際、ACLを指定することは可能です。

val acl = NCMBAcl()
val fileObj = NCMBFile("tempFile.txt")
fileObj.fileData = tmpFile
acl.publicWriteAccess = true
acl.publicReadAccess = false
fileObj.setAcl(acl)

ファイルの取得

ファイルストアに保存したものを取得するには、fetchメソッドを利用します。
fetchInBackgroundメソッドでの非同期処理も可能です。
あらかじめファイル名を指定したNCMBFileオブジェクトを作成し、データを取得することができます。
取得したデータはオブジェクトのfileDownloadByte にてアクセスできます。

val fileObj = NCMBFile("tempFile.txt")
// ファイルの取得を実施
fileObj.fetchInBackground(NCMBCallback { e, ncmbFile ->
    if (e != null) {
        //取得に失敗した場合の処理
        println("File取得に失敗しました : " + e.code + " " + e.message)
    } else {
        val fileObj = ncmbFile  as NCMBFile
        //取得に成功した場合の処理
        println("File取得に成功しました fileName:" + fileObj.fileName)
        //FileDownloadByteチェック (ByteArrayタイプ)
        if (fileObj.fileDownloadByte != null)  {
            val encodedString = String(fileObj.fileDownloadByte!!, Charsets.UTF_8)
            println(encodedString)
        }
    }
})

ファイルの検索

ファイルの情報を検索するには、クエリを利用します。ファイルストアを検索機能ではファイルのデータを取得することができないので、ご注意ください。ファイルのデータ取得するにはファイルの取得を実施する必要があります。以下はファイルの検索する例です。

val query = NCMBQuery.forFile()
query.whereEqualTo("fileName", "testFile")
val files = query.find() //検索結果はfilesにて利用可能
val count = query.count() //検索結果の件数はcountにて確認可能

管理画面での操作

ファイルをアップロードする

管理画面の左側メニューから、ファイルをクリックしてください。
ファイル管理ページを開く

アップロードボタンをクリックすると、ファイルアップロード画面が開きます。
ファイルアップロード画面を開く

デフォルトで選択したファイルの名前とMIMEタイプが表示されますが、変更することができます。
※MIMEタイプ:システムがファイルの種別を判断するためのもの

デフォルトでは全会員がファイルにアクセス可能となっていますが、パーミッションを設定して権限を変更できます。

※注意

アップロードするファイルの名前にはルールがありますので、ご注意ください。
詳細は、開発ガイドライン:ファイルストアについてをご参照ください。

「アップロードする」をクリックすると、ファイルがアップロードされます。
アップロード完了

ファイルを削除する

削除するファイルをチェックして、削除ボタンをクリックします。

ファイルクラスのパーミッションを設定する

アプリ設定からファイルストアの項目を選択すると、ファイルクラスパーミッションの画面が開くので、「パーミッションの設定」ボタンをクリックしてください。
ファイルクラスパーミッション設定
パーミッション設定画面が開くので、「+新しいパーミッション」ボタンをクリックし、パーミッションを設定してください。
ファイルクラスパーミッション設定2
パーミッションを削除する場合は、各行の左側にあるチェックボックスをクリックしたあと、削除ボタンをクリックしてください。

ファイル情報の暗号化設定

ファイルストアの「クラスの編集」から、ファイル名とMIMEタイプを暗号化した状態で保存するための設定ができます。

ファイル情報の暗号化設定

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ