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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

8626閲覧

PHPでAWS SDKを利用してファイルをアップロード(Codeigniter)

happypudding

総合スコア30

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

AWS(Amazon Web Services)

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

0グッド

1クリップ

投稿2016/03/17 10:34

お世話になっております。
この度AWS SDKを使用して画像のアップロードを行いたいと考えております。

そこで、aws.pharをダウンロードし、putObjectをしてみたのですが・・・

Error executing "PutObject" on "https://s3.ap_northeast_1.amazonaws.com/hoge/moge.txt";

となりPutできません。
エラーの内容

AWS HTTP error: cURL error 6: Couldn't resolve host 's3.ap_northeast_1.amazonaws.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

を見る限り、ホストが見つからないとあります。
そこで、コンソールにログインしてテストファイルをアップロード、その後リンクをみると・・・ホストが

https://s3-ap_northeast_1.amazonaws.com/hoge/moge.txt

となっておりました。
プログラムでは「https://s3.ap_northeast_1...」に対し
実際のリンクは「https://s3-ap_northeast_1...」

これはどういうことなのでしょう@@;

そもそもプログラムの記述方法が間違っているのでしょうか。
何が間違っているかご教授頂ければ幸いです。宜しくお願い致します。

実際のプログラムは下記のとおりです。

PHP

1<?php if( ! defined('BASEPATH')) exit('No direct script access allowed'); 2 3require APPPATH."aws/aws.phar"; 4use Aws\S3\S3Client; 5 6class Awsci{ 7 8 function __construct(){ 9 $CI=& get_instance(); 10 $this->CI=$CI; 11 $this->CI->load->helper('url'); 12 13 global $s3; 14 15 } 16 17 public function putObject($name,$file){ 18 global $s3; 19 $s3=new S3Client([ 20 'region'=>'ap_northeast_1', 21 'version'=>'2006-03-01', 22 'credentials'=>[ 23 'key'=>'xxxxxxxxxxxxxxxxxxxxxxxxx', 24 'secret'=>'xxxxxxxxxxxxxxxxxxxxxxx', 25 ] 26 ]); 27 28 $res=$s3->putObject(array( 29 'Bucket'=>'hoge', 30 'Key'=>'moge.txt', 31 'ContentType'=>'text/plain', 32 'SourceFile'=>"moge.txt", 33 'StorageClass'=>'REDUCED_REDUNDANCY', 34 'ACL'=>'public-read', 35 )); 36 37 print_r($res); 38 } 39 40}//class 41?>

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

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

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

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

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

guest

回答1

0

自己解決

ひとまずクラスのオプションを

'region'=>'ap-northeast-1', 'version'=>'latest',

に変えましたところ、無事取得することができました。

バージョンが古かったのでしょうか@@;

投稿2016/03/17 11:15

happypudding

総合スコア30

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問