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 件のコメント:

opaopa6969 さんのコメント...

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

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

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

ton さんのコメント...

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

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

Dockerのバージョンが17.xになり、Ubuntu Serverへのインストールがまたちょこっと変わった

ひさしぶりにDockerサイトへ行ったら Dockerのバージョンがかわっていた.. しかも昔Solarisとかがやったマイナーバージョンを メジャーバージョンに繰り上げしやがった。 で、 今後は毎月リリースするらしい。 今は2017年3月だから17.3.x...