質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Storage+

Storage+は、IT業界団体CompTIA認定の資格で、ストレージに関する知識を証明します。ストレージの設計・構築~運用・管理までの知識を評価し、接続時のトラブルシューティングや基礎的なストレージ・システム管理のスキルを取得している証明になります。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

2回答

439閲覧

ymlファイルから、circleCIで生成したapkファイルを、firebaseのstorageに保存したい。

giant

総合スコア132

Storage+

Storage+は、IT業界団体CompTIA認定の資格で、ストレージに関する知識を証明します。ストレージの設計・構築~運用・管理までの知識を評価し、接続時のトラブルシューティングや基礎的なストレージ・システム管理のスキルを取得している証明になります。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2017/11/27 10:47

編集2017/11/28 06:21

#firebaseのstorageのリンク

https://console.firebase.google.com/project/myapp/storage/myapp.appspot.com/files?hl=ja

#apkファイルの保存先を指定しているymlファイル

# コンパイル compile: override: - ./gradlew assembleDebug - cp -r app/build/outputs $CIRCLE_ARTIFACTS

実際に保存されている場所は下のような階層になっています。

イメージ説明

###下記のようなコードで、firebaseのstorageに、circleCIのymlファイルから保存をしようとしています

- run: curl -F 'post=@/{hoge/fuga/piyo.apk}' https://www.googleapis.com/upload/storage/v1/b/{myBucket}/o?uploadType=media&name={myObject} #上記のコードについて調べたところ、 #ファイルをアップロードするなど、curl経由でPOSTをする場合は「-F」オプションで行う事が出きる。値に「@PATH」を記述するとの情報を得たのですが、どう記述していいのかがわかりません。 #curl -F "name=@PATH" http://対象のURL  とすることはわかりました。

実際に、やって見たコードは、

steps: - run: curl -F 'post=@/Container 0 tmp/ circle-artifacts.jq6zh0N/ outputs/ apk/ app-debug-unaligned.apkapp-debug.apk' https://www.googleapis.com/upload/storage/v1/b/ds-beta-9e5bd/o?uploadType=media&name=myObject

このようになっているのですが、保存処理がされません。どう書き換えればいいのでしょうか?
アドバイスをいただけないでしょうか?


/////////////////////////////////////////////////////////////////////////////////////////////
回答をいただいてから取りかかった作業内容を記載しました。

/////////////////////////////////////////////////////////////////////////////////////////////

イメージ説明

このように追加したのですが、どうすれば、

https://www.googleapis.com/upload/storage/v1/b/{myBucket}/o?uploadType=media&name={myObject}

のようなリンクを取得できるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

これはリンクを取得するものではありません.ブラウザでの閲覧用ではなくアップロード用の特別なURLだからです.

説明しますが,普通よりマニアックな内容かと思います.
もし理解できなくとも,そのうち理解できるようになると思うので,気にする必要はないと思います.

circleCIで実行できるのはLinuxのコマンドなので,curlを使えば他のサービスとやり取りが出来るな,とまず考えます(一般にRESTと呼ばれます).
そしてFirebaseの説明書(難しい方)を眺めてみますが,RESTのところにFirebase Cloud Storageの記載はありません.

しかしFirebase Cloud Storageの裏側は実はGoogle Cloud Storageなので,そちらの説明書(難しい方)を見てみます.
RESTという書き方ではないのですが,JSONというものがあって,アップロードらしき記載を辿っていくと,お伝えしたURLが見つかります

投稿2017/11/28 07:09

編集2017/11/28 07:10
Yatima

総合スコア1159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giant

2017/11/28 10:31 編集

ありがとうございます。解答をいただいてからずっと、教えていただいたリンクを探し、コードを書いたり調べたりしたところ、教えていただいていたhttp 以下の階層の中で個人の環境によって差が生まれるのは、allUsers を指定した場合は、(MyApplication)だけでしょうか? - run: curl -F 'post=@/Container 0 tmp/ circle-artifacts.jq6zh0N/ outputs/ apk/ app-debug-unaligned.apkapp-debug.apk' https://www.googleapis.com/upload/storage/v1/b/allUsers/o?uploadType=media&name=MyApplication このようにして、pushして実行したのですが、保存がされません。MyApplicationのところには、自分のオブジェクト名から、.appspot.comを除いた文字を入力して、pushしました。 しかし、指定された階層に、apkファイルは保存されませんでした。apkの階層の指定にミスがあるのでしょうか? allUsersの設定は完了しているのですが、何故なのでしょうか? やはり先ほどいただいたアドバイス通り自分のレベルと、問題に差があるのでしょうか? 仕事で任されていて、なかなか解決せず辛い状況にあり、DeployGateなどを使う方向にシフトしたほうがいいでしょうか? これからも、調べて解決する気でいます。
giant

2017/11/28 10:32

なんども質問をしてしまい申し訳ありません。
Yatima

2017/11/28 11:36 編集

解決しようとする姿勢は素晴らしいと思います. しかし,学生や趣味で勉強するならまだしも,仕事であればまずはちゃんと終わらせることを優先したほうがいいのではないでしょうか.
giant

2017/11/28 11:45

ありがとうございます。しっかり調べて完成させれるよう頑張ってみます。
giant

2017/11/28 11:45

ありがとうございました。
Yatima

2017/11/28 12:28 編集

DeployGateなどを使ったほうがいいですよ,という意味です. ちゃんと終わらせるのを優先する,とは,求められた要件の実現についてです. 頑張って調べるのは,仕事を終わらせてからのほうがいいですよ.
giant

2017/11/28 12:32

その意味だったのですね。良かったです。明日はdeployGateでのapkファイルの配布機能ができるように頑張ってみます。ありがとうございました。 一度個々の問題を解決という形にします。 本当にお世話になりました。
guest

0

circleCIにアクセス権限がないのが問題かと思います.
例えば,
https://console.cloud.google.com/storage/browserにアクセスし,お持ちのhogehoge.appspot.comと一致するものを確認した上で,
一番右の「︙」ボタンより「バケットの権限を編集」を押し,
「メンバーを追加」にallUsersと入力,「役割を選択」で「ストレージのオブジェクト作成者」を選択し「追加」ボタンを押せば,保存できるはずです.

(お持ちのhogehoge.appspot.comは伏せておいたほうが良いと思います)
(それから上記で成功した場合は,その後に改めてセキュリティの設定をしておいたほうがいいかもしれません.余計な手間が必要にはなりますが)

投稿2017/11/27 16:01

Yatima

総合スコア1159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giant

2017/11/28 06:17

ありがとうございます。しっかりやってることと、質問の内容をまとめてからコメントしたいと思うあまり、 返信が遅くなってしまい申し訳ありませんでした。 教えていただいた ``` https://www.googleapis.com/upload/storage/v1/b/{myBucket}/o?uploadType=media&name={myObject} ``` のようなリンクをどうすれば取得できるのでしょうか? ``` https://console.cloud.google.com/storage/browser?project=myapp ``` というリンクにしかたどり着けません。 どのような過程でそのリンクに辿り着けますでしょうか?
giant

2017/11/28 06:22

なんども申し訳ありません。どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問