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で暗号化するといった方法はよく使われているようですので
そういった対策をするとか
必要だと思います。

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

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...