- String
- int
- bool
- ParseObject
- java.util.Date
- byte[]
- JSONObject.NULL
- JSONObject
- JSONArray
你可能會說有 byte[] 可以用啊~ 把 binary file 轉成 byte[] 就可以惹~
幹你娘這麼簡單我還需要發這篇嗎?哥來教你專業的用法:
ParseFile
Parse API 提供了一個 ParseFile 的物件可以協助我們存取 binary file,ParseFile 可以將 Size 太大以至於不適合塞到 ParseObject 的檔案放到原端資料庫,如 images、documents、videos、music ... 等等,一次最多可放 10 MB。用法很簡單,先將檔案以 byte[] 的形式開啟,然後存承 ParseFile,如以下寫法:
byte[] data = "Working at Parse is great!".getBytes();
ParseFile file = new ParseFile("resume.txt", data);
這樣會把資料以檔名 "resume.txt" 的形式儲存。上傳 ParseFile
上傳 ParseFile 的方式跟 ParseObject 很像,如以下寫法:file.saveInBackground();
當執行完畢後,便可將 ParseFile 與 ParseObject 做一個連結,寫法如下:ParseObject jobApplication = new ParseObject("JobApplication");
jobApplication.put("applicantName", "Joe Smith");
jobApplication.put("applicantResumeFile", file);
jobApplication.saveInBackground();
將檔案轉成 byte[] 可參考以下寫法
File file = new File(file_path);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum); //no doubt here is 0
}
} catch (IOException ex) {
ex.printStackTrace();
}
byte[] fileInBytes = bos.toByteArray();
bos.close();
fis.close();
下載 ParseFile
從雲端資料庫下載 ParseFile 的方式如下,利用 getData() 取回該檔案的 byte[] 陣列:ParseFile applicantResume = (ParseFile)anotherApplication.get("applicantResumeFile");
applicantResume.getDataInBackground(new GetDataCallback() {
public void done(byte[] data, ParseException e) {
if (e == null) {
// data has the bytes for the resume
} else {
// something went wrong
}
}
});
進度條
上傳或下載 ParseFile 的進度,可以透過以下方式取得:byte[] data = "Working at Parse is great!".getBytes();
ParseFile file = new ParseFile("resume.txt", data);
file.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
// Handle success or failure here ...
}
}, new ProgressCallback() {
public void done(Integer percentDone) {
// Update your progress spinner here.
// percentDone will be between 0 and 100.
}
});
刪除雲端資料庫上的檔案
欲刪除雲端資料庫上的檔案,必須透過 REST API (https://www.parse.com/docs/rest/guide/#files)其中 delete file 的指令需要該 App 的 master key,如下:
curl -X DELETE \
-H "X-Parse-Application-Id: xxxxx" \
-H "X-Parse-Master-Key: yyyyy" \
https://api.parse.com/1/files/...profile.png
其中 xxxxx 與 yyyyy 為帳號與 App 綁定的 master key
沒有留言:
張貼留言