我想从s3获取图像并将其显示在我的HTML页面上.
Angular HTML文件:
<section data-ng-controller="myCtrl">
<img ng-src="{{src}}" width="200px" height="200px">
</section>
Run Code Online (Sandbox Code Playgroud)
角度控制器文件:
angular.module('users').controller('myCtrl', ['$scope',function($scope) {
var s3 = new AWS.S3();
s3.getObject({Bucket: 'mybucket', Key: 'myimage.jpg'},function(err,file){
//code?? to display this image file in the img tag
//$scope.src=file????....obviously it wont work
});
}]);
Run Code Online (Sandbox Code Playgroud)
我找到了一些调用FileReader的东西并尝试了这个:
var reader = new FileReader();
reader.onload = function(event) {
$scope.src = event.target.result;
}
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
Uncaught TypeError:无法在'FileReader'上执行'readAsDataURL':参数1不是'Blob'类型.
请帮我在img标签中显示图像文件的代码
我的S3存储桶不公开
编辑:
我对s3不感兴趣.我想知道的是
如何使用HTML图像标签以文件对象(s3 obj)的形式显示您的javascript代码中的图像
当我尝试使用create-function命令创建lambda函数时,我收到错误"Lambda不能为函数定义角色".
aws lambda create-function
--region us-west-2
--function-name HelloPython
--zip-file fileb://hello_python.zip
--role arn:aws:iam :: my-acc-account-id:role/default
--handler hello_python.my_handler
--runtime python2.7
--timeout 15
--memory-size 512
我目前正在开发一个使用Symfony2开发的网站,我需要在Amazon SQS中发送消息.为了做到这一点,我加入了我的composer.json:
"aws/aws-sdk-php": "2.4.*"
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试创建队列或列表队列时,我遇到403错误说:
编辑: 添加完整的错误消息
AWS错误代码:AccessDenied,状态代码:403,AWS请求ID:2fe34c11-7af8-5445-a768-070159a0953e,AWS错误类型:客户端,AWS错误消息:访问资源 https://sqs.us-west-2 .amazonaws.com /被拒绝.,User-Agent:aws-sdk-php2/2.4.11 Guzzle/3.7.4 curl/7.25.0 PHP/5.4.3
以下是我所做的示例代码:
$aws = Aws::factory(array(
'key' => 'my-key',
'secret' => 'my-secret',
'region' => 'us-west-2'
));
$sqs = $aws->get('sqs');
return new Response(var_dump($sqs->listQueues()));
Run Code Online (Sandbox Code Playgroud)
如果出现此错误,我该怎么办?
如何将所有对象从一个前缀复制到另一个前缀?我已经尝试了所有可能的方法将一个镜头中的所有对象从一个前缀复制到另一个前缀,但似乎工作的唯一方法是循环遍历对象列表并逐个复制它们.这实在是效率低下.如果我在一个文件夹中有数百个文件,我是否必须拨打100个电话?
var params = {
Bucket: bucket,
CopySource: bucket+'/'+oldDirName+'/filename.txt',
Key: newDirName+'/filename.txt',
};
s3.copyObject(params, function(err, data) {
if (err) {
callback.apply(this, [{
type: "error",
message: "Error while renaming Directory",
data: err
}]);
} else {
callback.apply(this, [{
type: "success",
message: "Directory renamed successfully",
data: data
}]);
}
});
Run Code Online (Sandbox Code Playgroud) 使用aws-sdk模块和Express 4.13,可以通过多种方式从S3代理文件.
此回调版本将文件正文作为缓冲区返回,以及其他相关标题,如Content-Length:
function(req,res){
var s3 = new AWS.S3();
s3.getObject({Bucket: myBucket, Key: myFile},function(err,data){
if (err) {
return res.status(500).send("Error!");
}
// Headers
res.set("Content-Length",data.ContentLength)
.set("Content-Type",data.ContentType);
res.send(data.Body); // data.Body is a buffer
});
}
Run Code Online (Sandbox Code Playgroud)
这个版本的问题是你必须在发送之前获取整个文件,这不是很好,特别是如果它像视频一样大.
此版本将直接流式传输文件:
function(req,res){
var s3 = new AWS.S3();
s3.getObject({Bucket: myBucket, Key: myFile})
.createReadStream()
.pipe(res);
}
Run Code Online (Sandbox Code Playgroud)
但与第一个不同的是,它不会对标题做任何事情,浏览器可能需要正确处理文件.
有没有办法充分利用这两个世界,从S3传递正确的标题但是将文件作为流发送?可以通过首先HEAD向S3发出获取元数据的请求来完成,但是可以通过一次API调用来完成吗?
我试图从我在AWS ElasticBeanStalk上部署的Node应用程序访问DynamoDB.我收到错误"用户无权执行:dynamodb:PutItem on resource"
它在本地运行得非常好,只有当我部署到AWS时才停止执行.
谁知道修复?提前致谢!
我想使用javascript删除amazon s3中的文件.我已经使用javascript将文件上传到s3了.任何想法请帮助
我是AWS SDK的新手,我正在尝试遵循AWS 文档,但几乎没有提供我需要设置的内容.
官方文档告诉我将其添加到appsettings.json:
{
"AWS": {
"Profile": "local-test-profile",
"Region": "us-west-2"
}
}
Run Code Online (Sandbox Code Playgroud)
然后创建客户端:
var options = Configuration.GetAWSOptions();
IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();
Run Code Online (Sandbox Code Playgroud)
这会导致抛出异常,说它无法找到凭据.我在哪里放置Api ID和密钥?这个档案是什么?
请记住,我对如何设置它没有偏好.我只是想遵循.NET Core的官方文档,他们唯一的例子不起作用.文档似乎暗示我应该事先了解他们的许多术语和设置,或者我正在迁移现有应用程序并且已经完成了所有设置.
有人可以指点我这个例子中缺少什么只是为了让API正确连接到AWS?
我看到了很多这样的消息:
注意:AWS SDK for JavaScript (v2) 将于 2023 年进入维护模式。
请迁移您的代码以使用适用于 JavaScript 的 AWS 开发工具包 (v3)。有关更多信息,请查看迁移指南:https://a.co/7PzMCcy (用于
node --trace-warnings ...显示创建警告的位置)
能抑制住吗?
(这不是我的代码库,所以升级到 v3 是我无法控制的)。
我已删除凭据sudo nano ~/.aws/config但凭据仍在aws configure.有没有办法以aws configure清除状态重置?
aws-sdk ×10
amazon-s3 ×4
node.js ×4
javascript ×3
aws-cli ×2
amazon ×1
amazon-sqs ×1
angularjs ×1
aws-lambda ×1
aws-sdk-js ×1
aws-sdk-net ×1
boto ×1
c# ×1
express ×1
filereader ×1
python ×1
symfony ×1