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

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

ファイルストア(Obj-C)

基本的な使い方

概要

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

アプリからの操作

ファイルストアへのアップロード

以下のようにしてファイルストアへのアップロードを行います。

※注意

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

NSData *data = [@"NIF Cloud mobile backend" dataUsingEncoding:NSUTF8StringEncoding];

//ファイル名とデータを指定してNCMBFileオブジェクトを作成
NCMBFile *file = [NCMBFile fileWithName:@"ncmb.txt" data:data];

//ファイルストアにアップロード
[file save:nil];

画像データを扱う場合には、一度NSDataに変換したものをNCMBFileオブジェクトとしてセットします。

//画像ファイルのパスを作成
NSString *path = [[NSBundle mainBundle] pathForResource:@"icon.png" ofType:nil];
if (path == nil){
    //パスが無効だった場合
}

//画像を作成
UIImage *image = [UIImage imageWithContentsOfFile:path];
if (image == nil){
    //画像が読み込めなかった場合
}

//画像ファイルをNSDataに変換
NSData *pngData = [[NSData alloc]initWithData:UIImagePNGRepresentation(image)];

//NCMBFileのインスタンスを作成
NCMBFile *file = [NCMBFile fileWithName:@"icon.png" data:pngData];

//ファイルストアにアップロード
[file saveInBackgroundWithBlock:^(NSError *error) {
    if(error){
        //エラー時の処理
    } else {
        //成功時の処理
    }
}];

進捗状況の取得

以下のように、アップロードの進捗状況を取得することができます。

[file saveInBackgroundWithBlock:^(NSError *error) {
    //保存処理が完了したら呼び出されるBlock
} progressBlock:^(int percentDone) {
    // 進捗状況を取得するためのBlock
    //1 - 100 のpercentDoneを返す
    //このコールバックは保存中に何度も呼ばれる。
}];

ファイルを取得する

ファイルストアに保存したものを取得するには、getDataメソッドを利用します。
getDataInBackgroundメソッドでの非同期処理も可能です。
ファイルの取得時には、ファイル名を先に取得する必要があるので、
以下の2通りが考えられます。

  • ファイル名を指定して取得する

あらかじめファイル名を指定したNCMBFileオブジェクトを作成し、データを取得することができます。

- (void) testDownloadFileWithFileName {

    //ファイル名の指定
    NCMBFile *fileData = [NCMBFile fileWithName:@"test.png" data:nil];

    //ファイルストアからファイルを取得
    [fileData getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        if (error){
            //エラー時の処理
        } else {
            //成功時の処理
        }
    }];
}

  • ファイル検索を利用する

クエリを取得して、ファイルストアを検索することができます。

- (void)testDowonloadFile {

    //ファイルストアを検索するクエリを作成
    NCMBQuery *query = [NCMBFile query];

    //検索するファイル名を設定
    [query whereKey:@"fileName" equalTo:@"test.png"];

    //ファイルストアの検索を実行
    NSArray *files = [query findObjects:nil];
    for (NCMBFile *file in files){
        [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
            if (error){
                //エラー時の処理
            } else {
                //成功時の処理
            }
        }];
    }
}

ファイルの削除

deleteメソッドを利用して、ファイルを削除することができます。

[file deleteInBackgroundWithBlock:nil];

管理画面での操作

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

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

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

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

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

※注意

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

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

ファイルを削除する

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

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

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

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

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

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

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

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

ページの先頭へ