0

WordPressブログのAmazonS3アカウントにアップロードされたACL:PRIVATEを含むビデオ/画像ファイルを表示する必要があります。

私はPHPoopsベースのコーディングの初心者です。スクリプトヘルプ、リンク参照、無料のプラグイン、さらには論理アルゴリズムも非常に役立ちます:)

前もって感謝します。

4

2 に答える 2

5

この問題は、次の手順を実装することで解決できます。

  1. ここから SDK の最新の安定バージョンをダウンロードします。
  2. .zip ファイルを解凍し、wamp/wwwフォルダに配置します
  3. config-sample.inc.php ファイルの名前をconfig.inc.phpに変更します
  4. アクセス キーとシークレット キー(Amazon S3 アカウントから取得) を上記のファイルに追加し、保存して終了します。
  5. Amazon S3 のパブリック/プライベート オブジェクトを表示するサンプル ファイルを作成する

ファイルの内容は次のようになります。

require('sdk.class.php');
require('services/s3.class.php');

$s3 = new AmazonS3();
$bucket = "bucketname";
$temp_link = $s3->get_object_url($bucket, 'your/folder/path/img.jpg', '5 minute');

echo $temp_link;

上記のコードでは、出力として受け取る URL はプライベート オブジェクトの署名付き URL であるため、5 分間しか有効ではありません。

将来の日付でアクセスを許可し、許可されたユーザーのみが Amazon S3 のプライベート コンテンツまたはメディアにアクセスできるようにすることができます。

于 2012-04-20T10:14:31.810 に答える
1

この質問は少し古いですが、とにかく投稿しています。今日も同様の問題があり、簡単な答えがあることがわかりました。

aws doc はそれを明確に説明しており、例もあります。

http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html#amazon-s3-stream-wrapper

基本的に、AWS のストリームラッパーを登録し、s3:// プロトコルを使用する必要があります。

これが私のコードサンプルです。

use Aws\Common\Aws;
use Aws\S3\Enum\CannedAcl;
use Aws\S3\Exception\S3Exception;

$s3 = Aws::factory(array(
    'key'    => Config::get('aws.key'),
    'secret' => Config::get('aws.secret'),
    'region' => Config::get('aws.region')
))->get('s3');

$s3->registerStreamWrapper();

// now read file from s3
// from the doc.

// Open a stream in read-only mode
if ($stream = fopen('s3://bucket/key', 'r')) {
    // While the stream is still open
    while (!feof($stream)) {
        // Read 1024 bytes from the stream
        echo fread($stream, 1024);
    }
    // Be sure to close the stream resource when you're done with it
    fclose($stream);
}
于 2013-05-05T07:40:18.673 に答える