metaWeblog.newMediaObject の問題点

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] XML-RPC API を使ってファイルをアップロードすると、末尾にゴミがついてしまうことがあるようです。解決法をご存知の方はいらっしゃいませんか? → 解決しました
[キーワード] XML-RPC API

« 複数のサイドバーの使い分け | トップページ | metaWeblog.newMediaObject の裏技 »

2004.04.26

metaWeblog.newMediaObject の問題点

簡易XML-RPC クライアントの開発を続けているところですが、以下のような問題に遭遇。
いきなり、ココログでテストするのも何なので、ローカルマシンにインストールした Movable Type 2.661 で試験をしているのですが、metaWeblog.newMediaObject を使ってファイルをアップロードしてみたところ、 アップロード後のファイル末尾にゴミが付いてしまうのです。

metaWeblog.newMediaObject は、ファイルをそのままアップロードするのではなく、base64エンコードしたものをアップロードするのですが、

Base64では、元のバイナリデータの6bit分を0~63までの数値とみなし、これらにアルファベットの大文字(26文字)、アルファベットの小文字(26文字)、数字(0~9までの10文字)、記号(「+」と「/」の2文字)の64文字に変換する。このデータ変換は、元のデータの3byte(24bit)を6bit×4とみなして、4文字に変換する。元のデータが3の倍数でない場合には、変換結果が4の倍数になるように、「=」を1つないし2つ追加する。

@IT:Insider's Computer Dictionary [Base64]

のように、base64エンコード時に末尾に '=' が1個もしくは2個付くことがあります。
この '=' がそのままアップロード後のファイルに残ってしまうようです。サーバ側でちゃんと取り除いてくれないようですね。 困ったなぁ…。クライアント側では回避しようがないですよねぇ。


*** 2004年4月26日 15時35分 追記 ***
クライアント側で対処する方法を発見。というか、base64 エンコード処理の '=' の扱い方を変えてみたら、 うまくいくようになりました。@IT の説明をそのまま真に受けたのが失敗。
(ちょっとインチキくさいですが、いちばん手っ取り早い対処法としては)@IT の説明通りに base64 変換した後、 末尾の文字を再度 '=' に戻してやれば OK。

これで、次のステップ (Atom API の実装) に進めます。
Atom API では WSSE の PasswordDigest の生成に base64 を使っているので、 こっちがうまくいかないと、そっちもうまくいかない可能性が大きいのです。

投稿者: tsupo 2004.04.26 午後 12:18 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


Blogクライアント」カテゴリ内の最近の記事

ウェブログ・ココログ関連」カテゴリ内の最近の記事

プログラミング」カテゴリ内の最近の記事

品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/6737/495892

この記事へのトラックバック一覧です: metaWeblog.newMediaObject の問題点:

コメント

コメントを書く




※イタズラ防止のため、メールアドレスを入力しないと投稿できません。

次からのコメント入力の手間を省くために、名前やメールアドレスをcookieに記憶しますか?


URL を入力すると、その URL にリンクがはられます。
なお、メールアドレスは公開されません。ご安心ください。


ワード

ニッセン

fujisan.co.jp

楽天市場