小编Dus*_*tin的帖子

Nodejs AWS SDK S3生成预签名URL

我正在使用NodeJS AWS SDK生成预先签名的S3 URL.文档提供了生成预签名URL示例.

这是我的确切代码(省略了敏感信息):

const AWS = require('aws-sdk')

const s3 = new AWS.S3()
AWS.config.update({accessKeyId: 'id-omitted', secretAccessKey: 'key-omitted'})

// Tried with and without this. Since s3 is not region-specific, I don't
// think it should be necessary.
// AWS.config.update({region: 'us-west-2'})

const myBucket = 'bucket-name'
const myKey = 'file-name.pdf'
const signedUrlExpireSeconds = 60 * 5

const url = s3.getSignedUrl('getObject', {
    Bucket: myBucket,
    Key: myKey,
    Expires: signedUrlExpireSeconds
})

console.log(url)
Run Code Online (Sandbox Code Playgroud)

生成的URL如下所示:

https://bucket-name.s3-us-west-2.amazonaws.com/file-name.pdf?AWSAccessKeyId=[access-key-omitted]&Expires=1470666057&Signature=[signature-omitted]
Run Code Online (Sandbox Code Playgroud)

我正在将该URL复制到我的浏览器中并获得以下响应:

<Error>
  <Code>NoSuchBucket</Code>
  <Message>The specified bucket does …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services node.js aws-sdk-js

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

requirejs + jqueryui = $ .widget未定义

我正在使用requirejs + jquery + jqueryui.我已经阅读了很多关于如何做到这一点的例子.我想我了解各种方法,在我看来,我的设置应该正常工作.但是,我偶尔会在依赖于jquery-ui的自定义模块中获得$ .widget未定义的错误.这是一种痛苦,因为它不一致且难以复制,因此我很难测试其他方法.

我没有填充所有的jquery插件,因为有很多.相反,我正在使用单独的requirejs调用加载jquery.然后,在回调中,我加载其余的东西.这样我就不必维护所有jquery插件的填充程序列表.

对于jquery-ui,我使用垫片使其依赖于jquery.然后我使用小部件工厂的所有自定义模块在其依赖项列表中都有"jquery-ui".

在我的模板中......

requirejs.config({
    baseUrl: ATHLETE.siteConfig.jsBaseUrl,
    paths: {
        'jquery': '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min',
        'jquery-ui': '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min'
    },
    shim: {
        "jquery-ui": ['jquery']
    },
    waitSeconds: 15
});

requirejs(['jquery'], function($) {
    requirejs(['site'], function() {
        requirejs(['mypage']);
    });
});
Run Code Online (Sandbox Code Playgroud)

请注意,我在mypage.js之前加载site.js. 他们有一些共享的依赖项.在我的构建配置中,我从mypage.js中排除了site.js,因此共享依赖项被编译到site.js而不是mypage.js.因此,我需要在加载mypage.js之前完全加载site.js,否则require可能会尝试单独加载这些共享依赖项.

这是我的一个示例自定义模块,它依赖于jquery-ui.

define([
    'jquery',
    'jquery-ui'
],function($) {
    $.widget('ui.viewAllSponsorsWidget', $.ui.dialog, {
        options: {
            autoOpen: false,
            dialogClass: 'view-all-sponsor-dialog-wrap',
            draggable: false,
            modal: true,
            resizable: false,
            width: 370,
            height: 400
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

错误$ .widget未定义是由此的第5行和我的类似自定义模块引起的.再次,它真的不一致,很难再现.通常情况下,即使清除缓存,我也不会收到错误.任何人都可以想到在jquery-ui完全加载之前第5行可能会被执行的方式吗?

更新2013年8月16日

我已经能够跟踪这一点了.我创建了一个依赖于jquery和jquery-ui的简单模块.

define([
    'jquery',
    'jquery-ui'
],function($) {
    console.log('$.widget is …
Run Code Online (Sandbox Code Playgroud)

jquery-ui amd requirejs jquery-ui-widget-factory

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

Django ORM查询用户的朋友

我无法让Django ORM查询正常工作.我有这个友谊模型:

class Friendship(models.Model):
    user1 = models.ForeignKey(User, related_name='friendships1')
    user2 = models.ForeignKey(User, related_name='friendships2')
    class Meta:
        unique_together = ('user1', 'user2',)
Run Code Online (Sandbox Code Playgroud)

要查找给定用户的朋友,我们必须检查user1和user2,因为我们永远无法确定他们将在哪个方面建立关系.因此,为了获得给定用户的所有朋友,我使用以下查询:

user = request.user
User.objects.filter(
    Q(friendships1__user2=user, friendships1__status__in=statuses) |
    Q(friendships2__user1=user, friendships2__status__in=statuses)
)
Run Code Online (Sandbox Code Playgroud)

在我看来,这似乎应该有效,但事实并非如此.它给了我重复.这是它生成的SQL:

SELECT auth_user.*
FROM auth_user
LEFT OUTER JOIN profile_friendship ON (auth_user.id = profile_friendship.user1_id)
LEFT OUTER JOIN profile_friendship T4 ON (auth_user.id = T4.user2_id)
WHERE (
    (profile_friendship.status IN ('Accepted') AND profile_friendship.user2_id = 1 )
    OR (T4.user1_id = 1 AND T4.status IN ('Accepted'))
);
Run Code Online (Sandbox Code Playgroud)

这是我想要的SQL,它产生了正确的结果:

SELECT f1.id as f1id, f2.id AS f2id, u.*
FROM …
Run Code Online (Sandbox Code Playgroud)

django orm django-models

6
推荐指数
1
解决办法
578
查看次数