小编edh*_*ose的帖子

如何在面向公众的网站上使用oauth保护iOS企业分发?

我们有一个应用程序的企业分发,我们只想在我们的组织内分发.

我们构建了指向正确位置的ipa文件和plist,并使用url创建了html页面:itms-services://?action = download&url = {link to my plist}.

然而,我们的问题是确保分销过程.我们希望拥有公司自有iPad的员工能够在移动中下载应用程序(它们具有高度移动性).因此,我们希望将plist和app放在公共网站上,这需要通过oauth服务登录.

我们的问题是,如果我们要求对应用程序和plist的URL进行身份验证,那么itms-services:// url将不再有效.发生的情况是用户单击itms-services链接,我们会看到未经过身份验证的plist请求(重定向到登录),然后是设备上的"无法连接到{hostname}".

目前,我能看到这个工作的唯一方法是不检查ipa和plist文件的身份验证.这意味着(我相信)有人猜测我们的plist文件的URL可以创建自己的itms-services链接并在未经授权的情况下下载应用程序,并且有效地导致我们违反与Apple的协议,仅向我们的员工分发.

因此,我的问题是 - 如何创建一个不向公众公开ipa和plist文件的itms-services链接?如果相关,则使用no​​dejs构建网站,该应用程序是PhoneGap应用程序.

enterprise oauth ios cordova ios-provisioning

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

在进行滚动部署时,如何确保 Cloudfront 具有正确的资产版本?

我们目前正在使用 Capifony 和ec2-capify插件将我们的代码滚动部署到 ELB 后面的一组实例。我们还使用 CloudFront 来管理静态资产,我们使用查询字符串(例如?v1 或?v2)对其进行版本控制。

我们偶然发现了一个有关更新资产版本的罕见问题。如果当前版本是 v1,并且我们每次对一台服务器进行 v2 的滚动部署,那么 v2 盒子上的请求可能会发生以下情况:

  1. CloudFront 被请求使用 v2,但未命中。
  2. CloudFront 前往 ELB 并请求资产。
  3. ELB 选择一台服务器,并且会发生以下两种情况之一:Cloudfront 命中新部署的服务器之一(服务 v2),或者命中旧服务器(v1)。
  4. 无论哪种方式,Cloudfront 都会将内容存储为 v2。如果它到达 v1 服务器,内容将无法正确提供。

我们当前的解决方案是我们必须使用新的资产版本进行另一次部署。

有没有办法强制 Cloudfront 通过 ELB 仅访问我们更新的 (v2) 服务器之一,并忽略 v1 的服务器?

或者我是否缺少可以解决问题的替代解决方案?

amazon-ec2 amazon-cloudfront capifony

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

如何配置 Grafana 以捕捉 Prometheus 指标的急剧下降?

我们正在使用 Grafana 来监控某些事件和火灾警报。数据存储在 Prometheus 中(但我们没有使用 Prometheus Alert Manager)。

昨晚,我们的一项指标出现问题,目前我们没有警报。我想添加一个,但我正在努力确定这样做的最佳方法。

Grafana 仪表板图像正弦波模式 - 除了急剧下降

在这种情况下,该指标的 Y 轴非常低,一夜之间(图表左侧的 02:00-07:00),您可以看到该指标下降到接近零。

我们想检测到晚上 8 点右侧的急剧下降。我们在晚上 9 点(平线)检测到下降完全为零,但我想确定突然下降。

我们的普罗米修斯查询是:

sum(rate({__name__=~"metric_name_.+"}[1m])) by (grouping)
Run Code Online (Sandbox Code Playgroud)

我试过看一些东西,比如:

sum(increase({__name__=~"metric_name_.+"}[1m])) by (grouping)
Run Code Online (Sandbox Code Playgroud)

但它们大体上最终都得到了与下图相似的图形,但在 Y 轴刻度上存在差异,并且很难区分“接近零和安静”和“接近零”,因为指标已经下降了悬崖”。

我们可以使用 Grafana 和 Prometheus 设置的哪些组合来有效识别此更改?

grafana prometheus

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

如何确保DataFlow和Cloud Pub Sub的幂等性?

我很好奇在使用Cloud DataFlow和PubSub时确保幂等性的最佳方法?

我们目前有一个处理和存储MySQL数据库中的记录的系统.我对使用DataFlow进行一些报告感到好奇,但是想了解我需要做些什么才能确保我不会意外地重复计算(或者多次计算)相同的消息.

我的困惑分为两部分,首先确保我只发送一次消息,然后确保我只处理一次.

我的直觉如下:

每当我感兴趣的事件被记录在我们的MySQL数据库中时,将其转换为PubSub消息并将其发布到PubSub.假设成功,记录与MySQL记录一起返回的PubSub id.这样,如果它有一个PubSub ID,我知道我发送了它,我不需要再发送它.如果发布到PubSub失败,那么我知道我需要再次发送它.都好.

但是如果在PubSub写入成功后对MySQL的写入失败,我可能最终会再次向pub sub发布相同的消息,所以我需要在DataFlow端处理这种情况和PubSub发送消息两次的情况(如根据https://cloud.google.com/pubsub/subscriber#guarantees).

处理这个问题的最佳方法是什么?在AppEngine或其他系统中,我会检查数据存储区,看看我创建的新记录是否存在,但我不确定你是如何使用DataFlow的.有没有办法可以轻松实现过滤器来阻止消息被处理两次?或者DataFlow已经处理过了吗?

google-cloud-pubsub google-cloud-dataflow

4
推荐指数
1
解决办法
874
查看次数

为什么Internet Explorer无法使用NodeJS和Express下载PDF?

我有一个我正在使用NodeJS构建的网站,需要提供一些PDF(以及其他文件).

由于我无法确定的原因,Internet Explorer 8将无法在Acrobat Viewer中第一次完全下载PDF(有时多次).直接保存文件很好,但这并不理想.虽然我没有测试其他浏览器,但Chrome工作正常.

没有错误消息,除了状态栏停止更新并显示: 已下载(2.97 MB,16.33 MB):

我通过NodeJS和Express(v3,beta2)/ Connect框架(它是为该文件提供服务的Connect Static中间件)提供文件.我也通过SSL提供服务,但关闭它似乎不是救命.

任何想法将不胜感激!谢谢

编辑 - 包括更多细节:

首先 - 我已经从Express v2升级到v3以尝试解决问题 - 没有这样的运气.

这是为文件提供服务的应用程序路径.静态服务组件确实有效,因此问题似乎在IE如何检索文件或如何将表达式提供给IE中.

app.get('/store/*', ensureAuthenticated, express.static(__dirname + '/../uploads'));

function ensureAuthenticated(req, res, next) {
    if (req.isAuthenticated()) {    
        return next();
    }
} else {
    res.redirect('/login');
}
Run Code Online (Sandbox Code Playgroud)

至于错误 - 我在IE中看不到404错误或任何错误.它只是挂起一个空白屏幕,上面的图像显示了左下方状态栏中下载的数量.Adobe最终(约5分钟后)失败并发出警告:"此文件已损坏且无法修复".我知道文件没有损坏,因为IE偶尔加载它(参见下面的Fiddler请求).

在Fiddler,我看到以下内容. IE对PDF的多个请求. 2失败,1成功

前两个请求失败,而第三个请求成功传递PDF.

如果还有其他我能提供的,请告诉我.

pdf ssl internet-explorer node.js

2
推荐指数
1
解决办法
2596
查看次数