Page 219 - AngularJS权威教程
P. 219
18.18 上传到 S3 199
JSON.parse(data.Item.data.S); 1
d.resolve(service._user);
}
});
}); 2
});
});
} 3
return d.promise;
},
// ...
4
尽管看起来代码很多,但它只是在我们的DynamoDB上作了一个基于用户名的查找或者
创建。
5
此时,我们终于可以回到视图上看看发生了什么。
在templates/main.html文件中添加一个容器,它只是在用户不存在的时候显示登录状态,在 6
用户已经存在时显示用户详情。
我们用简单的ng-show指令和新的google-signin指令来完成添加。 7
<div class="container">
<h1>Home</h1>
<div ng-show="!user" class="row"> 8
<div class="col-md-12">
<h2>Signup or login to ngroad</h2>
<div google-signin 9
client-id='395118764200'
after-signin="signedIn(oauth)"></div>
</div> 10
</div>
<div ng-show="user">
<pre>{{ user | json }}</pre>
</div> 11
</div>
视图设置好之后,可以在第二个<div>中跟已登录的用户互动(在生产中,把它做成单独的 12
路由会比较好)。
13
18.18 上传到 S3
由于已登录用户已经存在于Dynamo中,是时候创建文件上传功能、直接把文件存到S3了。 14
首先,我们来简单了解一下跨域资源共享(Cross-Origin Resource Sharing,以下简称CORS)。
它是一种现代浏览器支持的安全特性,允许我们使用一个标准协议来对不同域作出请求。 15
幸好,AWS团队已经把支持CORS变得非常简单。如果我们把自己的网站托管在S3上,甚至
都不需要设置CORS(除了为了开发的目的)。 16
①
要在一个bucket上启用CORS,先要转到S3控制台 ,并且找到我们要用来上传文件的bucket。
对于这个示例,我们使用的是ng-newsletter-example bucket。 17
—————————— 18
① https://console.aws.amazon.com/s3/home