Translate

2010年4月15日木曜日

AndroidアプリからAmazon S3へファイルを格納する

Amazon S3上にAndroid側で作成したファイルをおきたくて、
S3のAPIドキュメントをよんでRESTClientでナントカつなげようとしたけど
うまくいかない..
たぶんAutorizationに設定する値が生だとだめなのかな..

で、なにか方法はないかなと調べてみると、

Amazon S3 Library for REST in Java

http://developer.amazonwebservices.com/connect/entry.jspa?externalID=132

を見つけた。

これを使えばいいけど

をAndroidManifest.xmlに登録しないといけない。

そうしたらうまくいった。

AWSAuthConnection conn = new AWSAuthConnection(
ACCESSKEYID,
SECRETACCESSKEY,
false, ←trueだとhttps
"s3.amazonaws.com", ←
CallingFormat.getSubdomainCallingFormat());

Response res = conn.put(
BUCKETPATH,←トップのバケット名
"hogehoge/test.txt",
new S3Object(imageData(バイト配列), null),
null);

これでOK。

2 件のコメント:

Unknown さんのコメント...

はじめまして。androidでS3を使うことになり、こちらのアーティクルを拝見しました。

securityKeyをアプリに入れた場合、逆コンパイルしてその情報がもれてしまうと悪意のあるユーザーから勝手にbucketを作られたりしないですか?

まだ、S3を学びはじめの為、的外れだったらすみません :)

ton さんのコメント...

実際に活用する場合は
たしかに注意しないといけないですね。
携帯端末IDを送信して
暗号化したキーを送り返したり
携帯端末IDで暗号化するといった方法はよく使われているようですので
そういった対策をするとか
必要だと思います。

簡単な方法だと、
ユーザビリティを下げてしまいますが、
メニューで登録画面から入力してもらう
という方法もありますね。

Claw EmpireをRaspberry Pi 5にセットアップする

1.前提条件 Raspberry Pi 5にRaspberry Pi OS(21 Apr 2026)がインストールされていること Raspberry Pi 5にRaspberry Pi OSをインストールし、SSHでアクセスできる状態にしておくこと Raspberry Pi 5が...