小编Sla*_*mir的帖子

关闭Google+后,OAuth API也会消失吗?

我们的一些用户通过Google OAuth API进行身份验证(https://developers.google.com/+/web/api/rest/oauth)

除了2019年4月之后,Google版OAuth API的未来是什么?

除了OAuth之外,我们使用以下端点获取用户的电子邮件和名称:https://www.googleapis.com/plus/v1/people/me一旦我们获得访问令牌.该端点是否已过时?

oauth google-api google-plus google-oauth google-oauth2

20
推荐指数
1
解决办法
5289
查看次数

PagerJS如何使用URL params完成"双向绑定"?

PagerJS可以获取URL参数并将它们绑定到模型.例如,在本例来自PagerJS网站(参见链接)中,当您点击该链接时,它将导航到#/user?first=Philip&last=Fry并显示数据绑定子页面,显示"Philip Fry":

<a class="btn" data-bind="page-href: {path: 'user', params: {first: 'Philip', last: 'Fry'}}">Send parameter to page</a>

<div data-bind="page: {id: 'user', params: ['first','last']}" class="well-small">
    <div>
        <span>First name:</span>
        <span data-bind="text: first"></span>
    </div>
    <div>
        <span>Last name:</span>
        <span data-bind="text: last"></span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是一种单向绑定:如果observable发生更改,由于页面上的用户操作,URL将不会更新.

使用PagerJS时,建议使用URL参数与observable同步的方法是什么?

我想在URL参数中存储用户动态创建的搜索条件(通过选择一组UI控件生成),这样他/她可以与其他人共享URL或将其加入书签,当然,所有这些都无需重新加载页面.

knockout.js pagerjs

10
推荐指数
1
解决办法
575
查看次数

在 Vuex 的状态下动态创建反应式数组

我的组件想向 SST (vuex) 添加一个新的反应式数组字段。我在 beforeCreate 钩子中尝试过,但添加的数组不是响应式的;它只是一个普通的 JS 数组。

请注意,这与在 Vue 初始化时创建的现有数组中添加/删除元素不同。这样的数组被“包装”并按预期变得反应,注意“数组更改检测”陷阱。

就我而言,我正在尝试向 SST 动态添加一个全新的数组类型字段,并同时使其具有反应性。可能的?

vue.js vuejs2

9
推荐指数
1
解决办法
6437
查看次数

ECS 滚动更新可能导致 502 Bad Gateway

我一直在 DAEMON 模式下测试 ECS 的滚动更新,但我无法避免偶尔出现“502 Bad Gateway”响应。这是我为测试所做的工作,这似乎指出了排水策略过程中的一个错误。

首先,我用 Kotlin/Jersey 编写了一个最小的 hello-world 程序来响应 curl GET(源代码)。我每约 300 毫秒循环一次到达终点:

 while [ 1 ]; do curl -s http://...us-east-2.elb.amazonaws.com/helloWorld | ts '[%Y-%m-%d %H:%M:%S]'; echo ""; sleep 0.3; done
Run Code Online (Sandbox Code Playgroud)

接下来,我推送一个新的容器镜像(使用相同的标签),它会产生稍微不同的响应(110 与 1010),以便我可以观察推出进度。最后我强制更新服务:

aws ecs update-service --service service-helloworld-jersey --cluster cluster-helloworld-jersey --force-new-deployment
Run Code Online (Sandbox Code Playgroud)

我的服务中有两项任务,最低健康百分比为50% 。Bash 循环在滚动更新期间产生以下输出 - 在某些时候有两个输出,一个带有“110”(旧代码),另一个带有“1010”(新代码),这是在其中一个容器具有已更新,另一个仍未更新:

在此处输入图片说明

如果您将 Bash 控制台上的事件与 AWS 控制台中的事件相关联(两者都是 NTP 时间同步的),您可以看到大约 9:04:39,尽管“耗尽”,我们仍在使用旧代码/容器事件应该发生在 9:04:28 之后,我在下面用红色突出显示。在 9:04:39 任务最终停止,这与循环中的“502 Bad Gateway”响应相关。

在此处输入图片说明

我的结论是 ELB 没有正确排出最后一个目标,这导致了我们看到的错误。

如果有人有任何想法如何进一步诊断或配置不同,请告诉我。


通过将 ELB 的注销延迟从 10 秒增加到 30 秒,我能够避免任何服务中断。

在此处输入图片说明

amazon-ecs aws-elb

8
推荐指数
0
解决办法
1493
查看次数

在CloudFront中更改"Origin Path"需要很长时间才能启动

我们在S3中托管了一个静态站点,并随CloudFront一起提供.该网站有效,但推出更新需要很长时间 - 数小时或更长时间.具体而言,改变原点路径几乎不会像所希望的那样快速地反映在边缘位置上.

这是我们想要实现的目标......

我们的S3存储桶配置为托管网站.它存储同一站点的多个版本.每个git标签有一个子目录.例如:

/git-v1
/git-v2
/git-v3
..
Run Code Online (Sandbox Code Playgroud)

目标是告诉CF开始按照Origin Path设置提供新版本的站点.我们不希望使旧对象无效,只需通过创建一个新目录并指向CF来继续推进该版本.CloudFront Distributions下的状态显示"Deployed"很长一段时间,但边缘位置继续忽略新的Origin Path.

任何关于如何使CF开始更快地服务新子目录的想法将不胜感激.

在此输入图像描述

amazon-s3 amazon-web-services amazon-cloudfront

5
推荐指数
1
解决办法
1637
查看次数

在 BlockingIOError 上记录阻塞:写入无法在不阻塞的情况下完成

我最近将我的脚本从 2.x 移植到 3.x。在通过自动化 (rundeck) 运行的生产过程中,我们看到由于记录器未处理阻塞 I/O 而导致的错误。任何如何解决的想法都会很棒。

  • Ubuntu 18.04.1 LTS
  • 蟒蛇 3.6.7
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.6/logging/__init__.py", line 998, in emit
    self.flush()
  File "/usr/lib/python3.6/logging/__init__.py", line 978, in flush
    self.stream.flush()
BlockingIOError: [Errno 11] write could not complete without blocking
Run Code Online (Sandbox Code Playgroud)

python-3.x python-logging

5
推荐指数
1
解决办法
4145
查看次数

有效地使用JSON流(在Java中)

我一直在使用JSONObjectJSONReader,但理想情况下,我正在寻找一种混合动力:)

特别是,给定JSON对象流(任意长的JSON数组的一部分),是否有一个帮助程序/库,它一次生成迭代器样式的“ JSONObject”,而不是读取其中的所有内容或不必解析单个原始字段(JsonReader )?

假设API的示例:

JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));

reader.beginArray();
while (reader.hasNext()) 
{
  JSONObject obj = reader.readObject();
  // do something with 'obj'
}
reader.endArray();
Run Code Online (Sandbox Code Playgroud)

上面,调用readObject解析一些复杂的JSON子树,并将其作为JSONObject返回。

java json

3
推荐指数
1
解决办法
3625
查看次数