小编rde*_*ges的帖子

Amazon CloudFront不尊重我的S3网站Bucket的index.html规则

我使用静态网站托管选项在Amazon S3上托管一个静态网站,这样S3将呈现一个文件夹,而不会让我明确指向我的index.html文件.

例如,这里是我的S3桶中页面的直接链接:http://new.rdegges.com.s3-website-us-east-1.amazonaws.com/category/2009/正如您所看到的,当当您访问该URL时,Amazon S3会自动在该目录中呈现index.html文件,从而允许我拥有干净的URL.

这一切都适用于S3.我遇到的问题是让Amazon Cloudfront正确处理这种行为.当我创建一个将我的S3存储桶指定为源的Cloudfront Distribution,并告诉它使用'index.html'作为根时,S3刚刚停止工作的index.html行为.

例如,这里是我在Cloudfront上的相同URL:http://d1mj00c6pby3gc.cloudfront.net/category/2009/

不幸的是,上面的URL不起作用,但如果我手动指定索引文件,它会,例如:http://d1mj00c6pby3gc.cloudfront.net/category/2009/index.html

我的问题是:我如何配置Cloudfront以使其尊重我网站的S3存储桶设置?

amazon-s3 amazon-cloudfront

67
推荐指数
2
解决办法
9187
查看次数

使用jsdoc记录回调的正确方法是什么?

我花了很长时间在互联网上寻找使用jsdoc正确记录回调的最佳方法,但遗憾的是,我还没有找到一个好的.

这是我的问题:

我正在为开发人员编写Node.js库.该库提供了开发人员将使用的多个类,函数和方法.

为了使我的代码清晰易懂,以及(希望)将来自动生成一些API文档,我已经开始在我的代码中使用jsdoc来自我记录正在发生的事情.

假设我定义了如下函数:

function addStuff(x, y, callback) {
  callback(x+y);
});
Run Code Online (Sandbox Code Playgroud)

使用jsdoc,我目前正在记录此函数,如下所示:

/**
  * Add two numbers together, then pass the results to a callback function.
  *
  * @function addStuff
  * @param {int} x - An integer.
  * @param {int} y - An integer.
  * @param {function} callback - A callback to run whose signature is (sum), where
  *  sum is an integer.
  */
function addStuff(x, y, callback) {
  callback(x+y);
});
Run Code Online (Sandbox Code Playgroud)

我觉得上面的解决方案有点像hack-ish,因为我无法用绝对术语来指定回调函数应该接受什么.

理想情况下,我想做的事情如下:

/**
  * Add two …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jsdoc autodoc jsdoc3

58
推荐指数
4
解决办法
2万
查看次数

如何使Go HTTP客户端不自动跟踪重定向?

我目前正在Go中编写一些与REST API交互的软件.我正在尝试查询的REST API端点返回HTTP 302重定向以及指向资源URI的HTTP Location标头.

我正在尝试使用Go脚本来获取HTTP Location标头以供以后处理.

以下是我目前正在实现的功能:

package main

import (
        "errors"
        "fmt"
        "io/ioutil"
        "net/http"
)

var BASE_URL = "https://api.stormpath.com/v1"
var STORMPATH_API_KEY_ID = "xxx"
var STORMPATH_API_KEY_SECRET = "xxx"

func noRedirect(req *http.Request, via []*http.Request) error {
        return errors.New("Don't redirect!")
}

func main() {

        client := &http.Client{
            CheckRedirect: noRedirect
        }
        req, err := http.NewRequest("GET", BASE_URL+"/tenants/current", nil)
        req.SetBasicAuth(STORMPATH_API_KEY_ID, STORMPATH_API_KEY_SECRET)

        resp, err := client.Do(req)

        // If we get here, it means one of two things: either this http request
        // actually failed, or …
Run Code Online (Sandbox Code Playgroud)

rest redirect http go

47
推荐指数
4
解决办法
3万
查看次数

如何通过Amazon API Gateway + Lambda(节点)检索用户的公共IP地址

我正在编写一个Node.js lambda函数,我想在其中记录传入请求者的公共IP地址.我一整天都在查看API网关和Lambda文档,但还没有找到解决方案.

lambda event对象是否包含我可以用来提取用户IP的请求元数据?

amazon-web-services node.js aws-lambda aws-api-gateway

41
推荐指数
3
解决办法
2万
查看次数

CloudFront + S3网站:应显示隐式索引文档时"指定的密钥不存在"

我刚刚在Amazon S3上部署了一个静态网站,目前可以在这里查看:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/

如果单击任何文章链接,您会注意到以下错误:

S3错误

S3抱怨该文件不存在.现在,这就是奇怪的 - 我在我的域名上使用CloudFront.因此,当您单击该文章链接时,它会将请求发送到CloudFront,然后CloudFront尝试从S3存储桶中取回文件.

但是,如果您直接从S3访问相同的URL,例如:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/2015/building-a-heroku-addon-planning/页面加载就好了.

看来这里有些东西在翻译中迷失了.

有人建议我可以做些什么来修复我的设置?

amazon-s3 amazon-web-services amazon-cloudfront

39
推荐指数
4
解决办法
2万
查看次数

如何自动填充SQLAlchemy数据库字段?(烧瓶-SQLAlchemy的)

我有一个简单的用户模型,定义如下:

# models.py
from datetime import datetime
from myapp import db

class User(db.Model):
  id = db.Column(db.Integer(), primary_key=True)
  email = db.Column(db.String(100), unique=True)
  password = db.Column(db.String(100))
  date_updated = db.Column(db.DateTime())

  def __init__(self, email, password, date_updated=None):
    self.email = email
    self.password = password
    self.date_updated = datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)

当我创建一个新的User对象时,我的date_updated字段被设置为当前时间.我想做的是这样做,每当我保存对User对象的更改时,我的date_updated字段将自动设置为当前时间.

我已经搜索了文档,但对于我的生活,我似乎无法找到任何参考.我对SQLAlchemy很新,所以我真的没有任何经验可以借鉴.

会喜欢一些反馈,谢谢.

database postgresql sqlalchemy flask flask-sqlalchemy

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

只有在尚未存在的情况下才能创建新对象的最快方法(SQLAlchemy)

我正在寻找创建新SQLAlchemy对象的最快方法,只有在数据库中不存在它时.

我现在这样做的方法是首先获取查询的计数以查看它是否存在,如果不存在 - 然后我创建它.例如:

if not User.query.filter(email=user.email).count():
    db.session.add(user)
    db.session.commit()
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?会喜欢一些反馈.谢谢!

python database postgresql sqlalchemy flask-sqlalchemy

23
推荐指数
0
解决办法
2万
查看次数

实施最简单的可能支付网关是什么?(使用Django)

我正在开发一个网络应用程序,要求用户将一次性存款存入他们的帐户,或者允许用户每月注册一次定期计费以获得一定的金额.

我一直在寻找各种支付网关,但大多数(如果不是全部)它们看起来很复杂,很难开始工作.我也看不到真正的activeDjango项目提供简单的付款方式.

理想情况下,我想使用像亚马逊FPS这样的东西,以便我可以看到在线交易日志,退款等等,但我对其他事情持开放态度.

我只想让EASIEST可能的支付网关与我的网站集成.我不是在寻找任何花哨的东西,无论工作如何,并且从头到尾需要<10小时才能完成工作.

我会给那些能指出一个好的人的答案.谢谢!

编辑:这是仅接受在美国的付款.我不需要国际支付网关.它只需要支持美国英语.

python django payment-gateway payment-processing

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

如何查找给定库函数在Python中引发的所有异常列表?

很抱歉这个长标题,但它似乎对我的问题最具描述性.

基本上,我很难在官方python文档中找到异常信息.例如,在我正在编写的一个程序中,我正在使用shutil libary的move函数:

from shutil import move
move('somefile.txt', '/tmp/somefile.txt')
Run Code Online (Sandbox Code Playgroud)

这工作正常,只要我有/ tmp /的写访问权限,就有足够的磁盘空间,并且满足所有其他要求.

但是,在编写通用代码时,通常很难保证这些因素,因此通常使用异常:

from shutil import move
try:
    move('somefile.txt', '/tmp/somefile.txt')
except:
    print 'Move failed for some reason.'
Run Code Online (Sandbox Code Playgroud)

我想实际捕获适当的异常抛出而不是只捕获所有内容,但我根本找不到大多数python模块抛出的异常列表.有没有办法让我看看给定函数可以抛出哪些异常,为什么?这样我可以为每个例外做出适当的案例,例如:

from shutil import move
try:
    move('somefile.txt', '/tmp/somefile.txt')
except PermissionDenied:
    print 'No permission.'
except DestinationDoesNotExist:
    print "/tmp/ doesn't exist"
except NoDiskSpace:
    print 'No diskspace available.'
Run Code Online (Sandbox Code Playgroud)

答案要点是谁可以将我链接到一些我在官方文档中忽略的相关文档,或者提供一种确定的方法来确定哪些函数抛出了哪些异常,以及为什么.

谢谢!

更新:从给出的答案看来,确实没有100%直接的方法来确定特定功能抛出哪些错误.使用元编程,似乎我可以找出简单的情况并列出一些例外,但这不是一个特别有用或方便的方法.

我想最终会有一些标准来定义每个python函数引发的异常,并且这些信息将包含在官方文档中.在那之前,我想我会允许这些异常通过并为我的用户输出错误,因为这似乎是最理智的事情.

python exception

13
推荐指数
2
解决办法
1545
查看次数

如何使用模型架构创建环回远程方法?

我目前正在构建一个环回应用程序,它只有一个名为的模型Phone.这是我的common/models/phone.js代码:

module.exports = function(Phone) {

  // Return a random phone's data.
  Phone.random = function(callback) {
    return callback(null, {
      id: '12345',
      number: '+18182179222',
      name: 'Randall Degges'
    });
  };

  Phone.remoteMethod('random', {
    description: 'Return a random phone.',
    accepts: [],
    returns: [
      //{ type: 'object', root: true, description: 'return value' },
      { arg: 'id', type: 'string', description: 'phone id', required: true, root: true },
      { arg: 'number', type: 'string', description: 'phone number', required: true, root: true },
      { arg: 'name', …
Run Code Online (Sandbox Code Playgroud)

node.js loopbackjs

13
推荐指数
1
解决办法
7045
查看次数