リポジトリにデータファイルを置き、obnizプログラムからアクセスできるか



  • obnizのプログラム間でデータのやりとりをしたい。
    obnizのクラウドのリポジトリにデータファイルを置き、obnizのEvent及びHTMLからRead/Writeする方法を教えて下さい。



  • @Google-Homer さん

    リポジトリにデータファイルを起きたい場合、こちらのAPIを使用します。
    https://obniz.io/doc/cloud_repository

    jsonファイルで保存する場合、具体的にはこのように書きます。

    ・データ取得

    var filename = "xxx.json";
    var data = await fetch('/users/me/repo/'+ filename ,{ method: "GET", credentials: "include" }).then(res=>res.json())
    

    ・データ保存

    var data = { key:"value"};
    var filename = "xxx.json";
    var form = new FormData();
    form.append('file', new Blob([JSON.stringify(data)]), filename);
    
    await fetch('/users/me/repo/'+ filename,{
            method: "POST",
            body: form,
            credentials: "include"
    })
    

    注意点として、

    1. 使用しているブラウザがログインしている必要があります。
    2. 保存したファイルはマイページから見れます。
    3. 常に上書きなので、データを追加したい場合はデータ取得→データを追加→全体を保存 としてください


  • ありがとうございました。
    Eventではだめなのですね。
    複数のプログラムから同時にアクセスした場合、何らかの排他かかりますか?



  • @Google-Homer さん

    Eventでも同じように使うことができます。
    同時にアクセスした際に排他はかからず、タイミングの微妙な前後で順番に実行されれます。



  • 「使用しているブラウザがログインしている必要があります。」
    この記述でEventでは不可と推測したのですが、変な理解になってますかね?



  • @Google-Homer さん

    使用しているブラウザがログインしている必要がありますが、
    Event時はこちらでログインと同様のことをしておりますので使うことができます。


Log in to reply
 

SUGGESTED TOPICS