小编JVK*_*JVK的帖子

Gemfile中"〜> 4.0.1","4.0.1"和没有版本说明符有什么区别?

在Rails Gemfile中,它们之间有什么区别:

gem "gemname", "~> 4.0.1"
Run Code Online (Sandbox Code Playgroud)

gem "gemname", "4.0.1"
Run Code Online (Sandbox Code Playgroud)

gem "gemname"
Run Code Online (Sandbox Code Playgroud)

还应该使用哪种方式以及遵循这种方式的好处?

ruby gem ruby-on-rails gemfile

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

Golang用DYNAMIC键解析json

我有一个json字符串如下:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`
Run Code Online (Sandbox Code Playgroud)

我想从json字符串中提取nameage从中提取值.我看了golang网站http://play.golang.org/p/YQgzP7KPp9给出的这个例子

但我的问题是顶级json的关键是动态的.这意味着bvu62fu6dq动态.我创建了这样的结构:

 type Info struct {
   UniqueID map[string]string
 }
Run Code Online (Sandbox Code Playgroud)

但不知道如何提取nameage.我的代码在http://play.golang.org/p/Vbdkd3XIKc

go

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

如何比较golang中的两个版本号字符串

我有两个字符串(它们实际上是版本号,它们可以是任何版本号)

a := "1.05.00.0156"  
b := "1.0.221.9289"
Run Code Online (Sandbox Code Playgroud)

我想比较哪一个更大.如何在golang中做到这一点?

go

18
推荐指数
4
解决办法
9031
查看次数

Golang中的图像处理

我有以下内容:

  1. 背景图片(bi)
  2. Image1(i1)
  3. Image3(i2)

我想以一定角度将i1和i2放在bi上,然后生成最终图像.我有i1和i2的x和y轴值以及它们的预期旋转角度.i1和i2可以部分地彼此重叠.但我知道i1和i2的z索引,如果它们重叠,那么谁将在前台.

我试图在Golang实现这一目标.
http://golang.org/doc/articles/image_draw.html似乎是这样做的.任何人都知道任何类似的代码示例,这可能有所帮助.或者你能在Golang中向我展示几行作为伪程序吗?

谢谢.

image go

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

Golang:如何在http客户端的TLS配置中指定证书

我有一个证书文件,该位置是:/usr/abc/my.crt我想在我的tls配置中使用该证书,以便我的http客户端在与其他服务器通信时使用该证书.我目前的代码如下:

mTLSConfig := &tls.Config {
    CipherSuites: []uint16 {
        tls.TLS_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
    }
}

mTLSConfig.PreferServerCipherSuites = true
mTLSConfig.MinVersion = tls.VersionTLS10
mTLSConfig.MaxVersion = tls.VersionTLS10

tr := &http.Transport{
    TLSClientConfig: mTLSConfig,
}

c := &http.Client{Transport: tr}
Run Code Online (Sandbox Code Playgroud)

那么如何在我的TLS配置中分配证书?我看到http://golang.org/pkg/crypto/tls/#Config上的证书设置有人可以建议如何在那里配置我的证书位置吗?

mTLSConfig.Config{Certificates: []tls.Certificate{'/usr/abc/my.crt'}}< - 错了,因为我正在传递string.right?我没有任何其他文件,如.pem或.key等,只有这个my.cert.我是空白怎么办?

早些时候,我编辑过go源代码http://golang.org/src/pkg/crypto/x509/root_unix.go/usr/abc/my.crt在第一行后添加.12,它工作.但问题是我的证书文件位置可以更改,因此我在构建TLSConfig时从root_unix.go中删除了硬编码的行并尝试动态传递它.

ssl ssl-certificate go

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

架构设计 - REST API支持由Mobile app完成的Facebook登录

我正在尝试设计REST API以支持各种移动客户端(iOS和Android应用程序).这些应用程序将允许用户使用Facebook登录以及我们自己的电子邮件身份验 您可以参考下图来了解我的设计

设计流程

授权分为两级:

第一个是使用OAuth2的"客户端(或应用程序)授权".因此,当用户在移动设备上安装我们的应用程序并启动应用程序时,首先,应用程序进行"客户端(应用程序)授权",如上图所示(第1张图像).并且服务器向access_token客户端发回长期存储以用于所有后续调用.我的问题是:

Q1)可以看到客户端发送client_keyclient_secret,我将它们存储在client_info表中.这个秘密应该是纯文本还是应该是可解密的格式?如果我加密它,我仍然需要在我的系统中的某处保留加密密钥.那它将如何使其安全?同样在每次通话中,解密都是一种开销.

Q2)是否可以access_token在redis中以纯文本格式缓存客户端并首先使用该缓存?

Q3)为了更安全,我要求客户发送appsecret_proof以确保access_token,他们发送的只属于此客户端.它使用与Facebook相同的概念https://developers.facebook.com/docs/graph-api/securing-requests#appsecret_proof.它是hash_hmac('sha256', access_token, client_secret)

Q4)我们将只拥有自己的2个移动应用程序(每个用于iOS和Android),并且不提供第三方使用我们的API来开发其他应用程序.这意味着,client_info对于每种类型的应用,我们的表只有两行一个.所以可以,在应用程序代码中,我们保留client_keyclient_secret硬编码?如果是,那么将来当我们必须使新秘密失效并使用新秘密时,我们将如何取代这些信息呢?

Q5)因为它是我们自己的应用程序几年,所以会有多个access_token将被创建针对相同client_keyclient_secret.为了保存所有这些,在redis中存储client_key键和array of all access_tokens值是一个好主意.将来,当我们将API打开给第三方时,这个redis存储设计仍然可以扩展吗?

=================

稍后,用户决定对我的应用程序执行某些操作,因为我们需要用户登录他的帐户.对于该用户,请单击"facebook login".我的应用程序facebook access_token从Facebook 获取和fb用户的id并将这些信息传递给API服务器(如第二张图所示).API服务器获取该令牌并调用facebook API来验证它access_token.一旦令牌被验证,服务器使用该用户相关的一些元数据与FB访问令牌一起产生我们自己user_access_token,让我们说utoken.并将其传递utoken回客户端,以便在每个后续用户特定的API调用中传回.我的问题是:

Q1)可以将其保存utoken在数据库,user_token表中.这utoken应该是纯文本还是应该是可解密的格式?如果我加密它,我仍然需要在我的系统中的某处保留加密密钥.那它将如何使其安全?同样在每次通话中,解密都是一种开销.

Q2)在每个用户特定的API调用中,我是否应该每次调用facebook进行检查facebook access_token仍然有效?我相信我不应该,因为这对我没有任何意义.请注意,Facebook仅用于"facebook登录".

Q3)我应该加密生成utoken什么信息?我想有一个散列或用户的关联数组email,user id,role …

api rest oauth facebook-graph-api oauth-2.0

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

Rails 4:如何从特定页面中的其他站点添加外部javascript文件

我正在使用turbolink(rails4)和js链接由我的页面标题部分中的application.js文件生成

<script data-turbolinks-track="true" src="/assets/jquery.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/jquery_ujs.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/global.js?body=1"></script>
Run Code Online (Sandbox Code Playgroud)

我的application.js看起来像:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require bootstrap.min.js
//= require respond.min.js
Run Code Online (Sandbox Code Playgroud)

我想从OTHER网站添加一个外部javascript文件,例如http://otherdomain.com/xyz.js在我网站的特定页面中.假设我想在特定页面http://mysite.com/profile中添加此外部js文件我想在页面的标题部分添加此js文件.那我该怎么办呢?请不要建议在本地保存该外部文件,因为这不是我的选择.

javascript ruby-on-rails sprockets asset-pipeline ruby-on-rails-4

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

Rails4:为什么resque工人没有找到工作

我在我的rails 4应用程序中使用resque和resque_scheduler.我的应用程序正在为resque做一些工作,但它们并没有被工人处理.reque-web显示没有失败.

我通过跑步开始了resque工作

QUEUE=kqueue rake environment resque:work

我的rails控制台

2.0.0p353 :006 > Resque.info

 => {:pending=>0, :processed=>0, :queues=>0, :workers=>1, :working=>0, :failed=>0, :servers=>["redis://localhost:6379/0"], :environment=>"development"} 

2.0.0p353 :007 > Resque.redis

 => #<Redis::Namespace:0x007fbb0fbf3e58 @namespace=:resque, @redis=#<Redis client v3.0.6 for redis://localhost:6379/0>, @warning=false> 

2.0.0p353 :008 > Resque.workers

 => [#<Worker xxx-macbook.local:16869:kqueue>] 
Run Code Online (Sandbox Code Playgroud)

在redis上,

redis 127.0.0.1:6379> keys *
1) "resque:workers"
2) "resque:delayed_queue_schedule"
3) "resque:worker:xxx-macbook.local:16869:kqueue:started"
4) "resque:timestamps:{\"class\":\"InvokeScheduler\",\"args\":[{\"target\":\"/sendmail\",\"http_method\":\"post\",\"type\":\"signup_verification\",\"user_id\":31}],\"queue\":\"kqueue\"}"
5) "resque:delayed:1388832771"
Run Code Online (Sandbox Code Playgroud)

resque-web说:

0 of 1 Workers Working

Failed Jobs
Showing 0 to 0 of 0 jobs


Worker xxx-macbook.local:16869:kqueue

Host    Pid   Started Queues  Processed Failed  Processing …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails resque ruby-on-rails-4 resque-scheduler

7
推荐指数
1
解决办法
3120
查看次数

Ruby - 使用雾在现有s3文件的末尾附加内容

如何在S3中的现有或新创建的文件中附加文本.我正在使用fog,我有以下代码

require 'fog'
file    = "abc.csv"
bucket  = 'my_bucket'
storage = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => 'XXXXXXXX', :aws_secret_access_key => 'YYYYYYYY')
dir     = connection.directories.new(:key => bucket) # no harm, if this bucket already exists, if not create one
buffer  = ["big_chunk1", "big_chunk2", "big_chunk3", "big_chunk4", "big_chunk5"]

# I need help after this line. No changes above.
buffer.each do |chunk|
  # this will not work as it will not append text below the existing file or 
  # newly created one. I …
Run Code Online (Sandbox Code Playgroud)

ruby amazon-s3 fog

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

如何在 Flask 应用程序中的 SQLAlchemy 对象中设置 schema_translate_map

我的 app.py 文件

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres:////tmp/test.db'
db = SQLAlchemy(app) # refer https://flask-sqlalchemy.palletsprojects.com/en/2.x/api/#flask_sqlalchemy.SQLAlchemy
Run Code Online (Sandbox Code Playgroud)

我的模型类之一,我在其中导入db

from app import db
Base = declarative_base()

# User class
class User(db.Model, Base):
  id = db.Column(db.Integer, primary_key=True)
  username = db.Column(db.String(80), unique=True, nullable=False)
  email = db.Column(db.String(120), unique=True, nullable=False)

  def __repr__(self):
    return '<User %r>' % self.username

  def get_user_by_id(self, id):
    return self.query.get(id)
Run Code Online (Sandbox Code Playgroud)

我的数据库在不同模式(多租户)中具有相同的表集,并且我需要根据特定租户即时发起的请求before_request(从子域 URL 获取租户 ID)来选择模式。

我发现 Postgres …

python postgresql sqlalchemy flask flask-sqlalchemy

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