我们有一个应用程序的企业分发,我们只想在我们的组织内分发.
我们构建了指向正确位置的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链接?如果相关,则使用nodejs构建网站,该应用程序是PhoneGap应用程序.
我们目前正在使用 Capifony 和ec2-capify插件将我们的代码滚动部署到 ELB 后面的一组实例。我们还使用 CloudFront 来管理静态资产,我们使用查询字符串(例如?v1 或?v2)对其进行版本控制。
我们偶然发现了一个有关更新资产版本的罕见问题。如果当前版本是 v1,并且我们每次对一台服务器进行 v2 的滚动部署,那么 v2 盒子上的请求可能会发生以下情况:
我们当前的解决方案是我们必须使用新的资产版本进行另一次部署。
有没有办法强制 Cloudfront 通过 ELB 仅访问我们更新的 (v2) 服务器之一,并忽略 v1 的服务器?
或者我是否缺少可以解决问题的替代解决方案?
我们正在使用 Grafana 来监控某些事件和火灾警报。数据存储在 Prometheus 中(但我们没有使用 Prometheus Alert Manager)。
昨晚,我们的一项指标出现问题,目前我们没有警报。我想添加一个,但我正在努力确定这样做的最佳方法。
在这种情况下,该指标的 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 设置的哪些组合来有效识别此更改?
我很好奇在使用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已经处理过了吗?
我有一个我正在使用NodeJS构建的网站,需要提供一些PDF(以及其他文件).
由于我无法确定的原因,Internet Explorer 8将无法在Acrobat Viewer中第一次完全下载PDF(有时多次).直接保存文件很好,但这并不理想.虽然我没有测试其他浏览器,但Chrome工作正常.
没有错误消息,除了状态栏停止更新并显示:

我通过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,我看到以下内容.

前两个请求失败,而第三个请求成功传递PDF.
如果还有其他我能提供的,请告诉我.
amazon-ec2 ×1
capifony ×1
cordova ×1
enterprise ×1
grafana ×1
ios ×1
node.js ×1
oauth ×1
pdf ×1
prometheus ×1
ssl ×1