在PHP文件下面,aws cli s3 copy命令无法正常工作,因为它找不到错误凭据。
但是当它在unix命令行中执行时,它正在工作。
在主目录中拥有aws凭据并为其他用户提供读取权限
private static final String LOGIN_URL = "http://10.0.2.2:8000/mobilevalidator/";
答案 0 :(得分:0)
使用php时,你应该使用php sdk。
您可以查看here获取凭据的不同和最佳方法
示例 - 如果您的require "#{Rails.root}/lib/query"
文件类似于
credentials
,您的[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
文件包含
config
您可以像
一样创建一个简单的S3客户端[default]
region=us-east-1
如果您没有完整的配置集或想要更改区域,例如
<?php
use Aws\S3\S3Client;
// Instantiate a client with the credentials from the project1 profile
$s3Client = S3Client::factory();
要复制对象,您可以查看copy-object method
// Instantiate a client with the credentials from the project1 profile
$s3Client = S3Client::factory(array(
'region' => 'us-west-2',
));
注意:您无需在凭据文件中授予其他权限,请将其保留为
use Aws\S3\S3Client;
$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';
$targetBucket = '*** Your Target Bucket Name ***';
$targetKeyname = '*** Your Target Key Name ***';
// Instantiate the client.
$s3 = S3Client::factory();
// Copy an object.
$s3->copyObject(array(
'Bucket' => $targetBucket,
'Key' => $targetKeyname,
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
));