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
   214   215   216   217   218   219   220   221   222   223   224