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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

4312閲覧

AWS S3 EC2 マウント

takyas

総合スコア54

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2017/02/15 04:20

編集2017/02/15 04:46

AWSの学習をしています。
S3をEC2にマウントして、ファイルをアップロード出来る仕組みを作ろうとしています。

【前提条件・環境】
・S3 bucket名"test"
・EC2 Amazon Linux/Apache/PHP7/MySQL5.6
・goofysでマウントを実施
・マウントディレクトリのディレクトリ構造
/var/www/html/hogehoge/content/test ←
・パーミッション
drwxr-xr-x 2 myname myname 4096 Feb 14 08:43 test

参考サイト
http://qiita.com/Yuki_BB3/items/9d661e7ad986c6a4f33d

##ハマっている点
・マウントした"test"ディレクトリにファイルをアップロード出来ない。
エラー
PHP error debug
Error : move_uploaded_file(/var/www/html/hogehoge/content/test/20170215-011602.png): failed to open stream: Permission denied

⬇︎(パーミッション、オーナー権限の問題かと思い変更を試みるも)
・パーミッション、オーナー変更出来ない
⬇︎
・FTP(FileZilla)だったらアップできるか確認
⬇︎
・出来ない

##教えていただきたい点
マウントしたディレクトリにファイルをアップロードするにはどうすれば良いでしょうか?
ファイルのアップロード先は、①test.s3-website-ap-northeast-1.amazonaws.com、②http://XXX.XXX.XXX.XXX/hogehoge/content/testになるのでしょうか?
S3でCORSやAWS認証系の設定をしなければならないのでしょうか?
等々

参考サイト
WebブラウザからAmazon S3に直接ファイルをアップロードする
http://dev.classmethod.jp/cloud/aws/s3-cors-upload/

ググったり、書籍を当たってみているのですが解決出来ていない状況です。
「ここはどうなってるの?」というのがあれば教えていただきたいです。
どんなアドバイスでも結構です。
宜しくお願い致します。

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

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

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

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

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

guest

回答3

0

ベストアンサー

ファイルまでの各ディレクトリの権限を確認できますでしょうか。

ls -ld /var ls -ld /var/www ls -ld /var/www/html ls -ld /var/www/html/hogehoge ls -ld /var/www/html/hogehoge/content ls -ld /var/www/html/hogehoge/content/test ls -l /var/www/html/hogehoge/content/test/20170215-011602.png

特にhogehoge以降の権限(httpd実行ユーザーが読める権限)が無いものともおもわれます。
その場合、次のコマンドで対応可能です。

sudo chmod o+r /var/www/html/hogehoge /var/www/html/hogehoge/content /var/www/html/hogehoge/content/test /var/www/html/hogehoge/content/test/20170215-011602.png

投稿2017/02/15 06:45

moonphase

総合スコア6621

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

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

takyas

2017/02/15 07:24 編集

moonphaseさん ありがとうございます。 [myname@ip-10-0-1-174 ~]$ ls -ld /var drwxr-xr-x 20 root root 4096 Feb 14 05:12 /var [myname@ip-10-0-1-174 ~]$ ls -ld /var/www drwxr-xr-x 6 root root 4096 Feb 14 05:12 /var/www [myname@ip-10-0-1-174 ~]$ ls -ld /var/www/html drwxr-xr-x 3 root root 4096 Feb 14 05:26 /var/www/html [myname@ip-10-0-1-174 ~]$ ls -ld /var/www/html/hogehoge drwxr-xr-x 8 root root 4096 Feb 14 08:39 /var/www/html/modx [myname@ip-10-0-1-174 ~]$ ls -ld /var/www/html/hogehoge/content drwxrwxrwx 7 root root 4096 Feb 15 06:08 /var/www/html/hogehoge/content [myname@ip-10-0-1-174 ~]$ ls -ld /var/www/html/hogehoge/content/test drwxr-xr-x 2 myname myname 4096 Feb 15 06:55 /var/www/html/hogehoge/content/test [myname@ip-10-0-1-174 ~]$ ls -l /var/www/html/hogehoge/content/test/sw3.png -rw-r--r-- 1 myname myname 216223 Feb 14 07:41 /var/www/html/hogehoge/content/test/20170215-011602.png このような権限です。 mynameユーザは"visudo"設定ファイルを編集しております。 ## Allow root to run any commands anywhere myname ALL=(ALL) ALL
moonphase

2017/02/15 07:21

OS上からは問題なさそうですね。 goofys関連のドキュメントを見ていると、マウントする際にallow_otherオプションをつけないと他のユーザーから見えないとの情報があります。 allow_otherがついていないので、mynameでアクセス可能で、apacheから見えていないのではないでしょうか。
takyas

2017/02/15 09:21

/home/myname/go/bin/goofys test test -o allow_other,--uid=xx,--gid=xx とすることにより、FileZillaからはUPできるようになりました。 ありがとうございました。
guest

0

・FTP(FileZilla)だったらアップできるか確認

これは、ユーザ"myname"でアップロードしようとしたのでしょうか。

S3にマウントしている状態で、EC2で以下のコマンドを実行した場合に、何かエラーが発生しますか。

sudo touch /var/www/html/hogehoge/content/test/HOGEHOGE ls /var/www/html/hogehoge/content/test/

投稿2017/02/15 05:12

gorogoroIT

総合スコア447

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

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

takyas

2017/02/15 05:32

gorogoroITさん ご回答ありがとうございます。 >これは、ユーザ"myname"でアップロードしようとしたのでしょうか。 そうだと認識しています。 ご指示がありましたコマンドを実行したところ、エラーは出ずに"HOGEHOGE"ファイルが作成されました。
gorogoroIT

2017/02/15 06:24 編集

確認ありがとうございます。 Web(Apache)経由で、ファイルをアップロードしていると仮定すると、 httpd が動作しているユーザが"myname"以外になっているのではないでしょうか。 (かなり乱暴な方法ですが、)一旦、マウントを解除して、以下のようなオプションをつけて マウントするとどうなりますでしょうか。。 goofys --file-mode=0666 --dir-mode=0777 [S3-bucket] [mount-point] [S3-bucket] : test [mount-point]:/var/www/html/hogehoge/content/test
takyas

2017/02/15 06:54 編集

ありがとうございます。 全体のコマンドとしては、 /home/myname/go/bin/goofys test(bucket) test(mount-point) goofys --file-mode=0666 --dir-mode=0777 test(bucket) test(mount-point) という理解であっていますでしょうか? このコマンドだとした場合、Error: goofys takes exactly two argumentsというエラーが返ってきます。
gorogoroIT

2017/02/15 07:04

あぁ、、、ごめんなさい。書き方が悪かったです。 コマンドとしては、以下になります。 /home/myname/go/bin/goofys --file-mode=0666 --dir-mode=0777 test test
takyas

2017/02/15 07:25

ありがとうございます。 とんでもないです、自分の知識不足です。 実行してみます。
guest

0

マウントする前に、S3へのアップロードが出来ることは確認できてますか?
できていないとしたら、バケットのプロパティ・アクセス許可を確認してみてください。被付与者が所有者の欄の、アップロード/削除にチェックが入っていますか?

投稿2017/02/15 05:00

november

総合スコア39

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

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

takyas

2017/02/15 05:34

novemberさん コメントありがとうございます。 >被付与者が所有者の欄の、アップロード/削除にチェックが入っていますか? 入っておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問