SyntaxHighlighter

---SyntaxHighlighter ウィジェット---

2016年1月5日火曜日

FlashAirからDropboxにアップロード"だけ"するスクリプト(公式サンプルより簡単)

--150MBまでのファイルをDropboxにアップロードするサンプル

--追記:送信バッファの設定をしない場合、大きなファイルはアップロードに失敗する
--(成功するがファイルが破損する)ため、公式サンプル同様の送信バッファ設定に修正しました。

--ここにアクセストークン。自分用のAPI登録をしたなら、Generated access tokenで生成できる。
--公式のサンプルのように、appKeyやappSecretを使っていろいろする必要はない。
token = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";

--アップロードしたいファイル名
filename = "/FlashTools.lua";

--アップロード先フォルダ
--App folder– Access to a single folder created specifically for your app.にしたなら、
--アプリフォルダ内にファイルができる。
--Full Dropbox– Access to all files and folders in a user's Dropbox.にしたなら
--自由に。ファイル破壊も発生するので注意。

--uploadDir="/someFolder"
uploadDir="";


--アップロード処理開始

   --ファイル本体をデータに
   mes = "<!--WLANSDFILE-->";
   --ファイルサイズを取得
   len_s = lfs.attributes(filename,"size");

   --アップロード先パス設定
   uploadPath = uploadDir..filename;
   --Dropbox引数(上書き・通知の有無)
   dropboxArg = '{"path": "'.. uploadPath ..'","mode": "overwrite"}';
   print(dropboxArg);


   --ヘッダー情報
   hed = {
      ["Content-Length"] = len_s,
      ["Authorization"] = "Bearer "..token,
      ["Dropbox-API-Arg"] = dropboxArg,
      ["Content-Type"] = "application/octet-stream"
   };

   --リクエスト
   b,c,h = fa.request{
      url = "https://content.dropboxapi.com/2/files/upload",
      method = "POST",
      headers = hed,
      body = mes,
      file = filename,
      bufsize=1460*10
   };

   --結果
   --c=400なら失敗。200なら成功。
   print(h);
   print(b);

0 件のコメント:

コメントを投稿