我正试图通过一个预先签名的URL将一个文件上传到Amazon S3 bucket,这是我从第三个服务获得的。意思是,我没有生成这个URL。我已经阅读了AWS文档,但我不能把它们全部放在一起。这就是我指的。
目前,我的代码是这样的。请注意,$key是预先签名的URL。
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
use GuzzleHttp\Psr7\Stream;
use GuzzleHttp\Psr7\CachingStream;
$client = new GuzzleHttp\Client(['verify' => false ]);
$response = $client->get($image_url);
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'eu-west-1',
'signature_version' => 'v4'
)
]);
$s3->putObject([
'Bucket' => '<BUCKET NAME HERE>',
'Key' => $key,
'ContentLength' => get_headers($image_url,1)['Content-Length'],
'ContentType' => 'image/png',
'Body' => $response->getBody(),
'ACL' => 'private-write',
]);
目前,我得到了这个错误:
PHP致命错误:未捕获的Aws\Exception\凭据异常:从实例配置文件元数据服务中检索凭据的错误。(cURL错误7:(见https://curl.haxx.se/libcurl/c/libcurl-errors.html)http://169.254.169.254/latest/meta-data/iam/security-credentials/)中
任何帮助都是非常感激的。
这里的问题是,您在初始化S3客户端时没有传递凭据,即AccessKey和Secret Key。
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'eu-west-1',
'signature_version' => 'v4',
'credentials' => [
'key' => 'access-key',
'secret' => 'secret-key' ,
]
)
]);
如果要从文件传递AccessKey和SecretKey,而不是硬编码字符串,可以在此处检查接受的答案。
我上传一个文件到AmazonS3有问题。我开发了一个Grails RESTful服务,它使用AWS Java SDK生成预签名URL。当客户端上传一个文件时,它首先检索一个预签名的URL,然后使用这个将文件直接上传到我的S3 bucket。所以我有一个Grails服务,它创建了一个预签名的URL,如下所示...
这里是我的node.js预签名URL的生成 那么我在URL生成或卷曲方面的问题在哪里呢?谢谢
我有一个从AWS S3预先签署的上传网址上传视频文件。在邮递员上测试视频成功上传。然而,我得到一个403返回时,实施改造。我无法对此任务使用多部分上传。 服务调用: 上传: 我已经确保URL是正确的。内容类型标题也被添加,邮递员截图附后。得到403禁止错误 邮递员截图 我发现了这个相关的问题,但我仍然得到一个403。使用改造2 将文件上传到 AWS S3 预签名 URL 有什么建议吗?
我试图使用angular客户端将文件上传到Amazon S3。我已经使用NodeJs应用服务器生成了一个预先签名的URL。在将文件上传到预先签名的URL时,我收到一个错误,如下所示: "对预检请求的响应没有通过权限改造检查:请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许访问Origin'http://localhost:4200'。" 我已将以下 COR
问题内容: 我正在尝试使用预签名的URL将文件上传到Amazon的S3。我从生成URL的服务器获取URL,并将其作为JSON对象的一部分发送给我。我将URL作为字符串获取,如下所示: https://com-example-mysite.s3-us- east-1.amazonaws.com/userFolder/ImageName?X-Amz-Security- Token=xxfooxx%2F
我知道使用以下方法限制对象的上载大小:http://doc.s3.amazonaws.com/proposals/post.html#limiting_uploaded_content 但是我想知道如何在服务器端以IAM用户的身份使用S3 SDK生成预签名url的同时完成。