根据我的经验,我看到很多架构图,它们广泛使用FTP作为链接架构组件的媒介.
作为一个不做出架构决策但倾向于查看架构图的人,任何人都可以解释使用FTP的价值,适当的地方和将数据作为文件传输时是个好主意.
我知道通常遗留系统只需要以这种方式工作 - 尽管任何历史见解都会很有趣
我可以看到传输文件的吸引力(特别是如果那是需要转移的东西),因为它的简单性和熟悉性,并且如果推理超出这个范围就会感到奇怪.
编辑:感谢那些指出SFTP更受欢迎的人,但是我的问题比想要文件传输协议的建议更广泛.对困惑感到抱歉.
我正在使用web.py和GAE(Windows 7,Python27)运行一些基本的测试代码.该表单允许将消息发布到数据存储区.当我停止应用并再次运行时,之前发布的任何数据都已消失.使用admin手动添加实体(http:// localhost:8080/_ah/admin/datastore)也存在同样的问题.
我尝试使用额外标志在应用程序设置中设置路径:
--datastore_path=D:/path/to/app/
Run Code Online (Sandbox Code Playgroud)
(不确定那里的语法).它没有效果.我搜索了我的计算机上的*.datastore,并且找不到任何文件,这似乎是可疑的,尽管数据显然是在应用程序运行期间存储在某处.
from google.appengine.ext import db
import web
urls = (
'/', 'index',
'/note', 'note',
'/crash', 'crash'
)
render = web.template.render('templates/')
class Note(db.Model):
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
class index:
def GET(self):
notes = db.GqlQuery("SELECT * FROM Note ORDER BY date DESC LIMIT 10")
return render.index(notes)
class note:
def POST(self):
i = web.input('content')
note = Note()
note.content = i.content
note.put()
return web.seeother('/')
class crash:
def GET(self):
import logging
logging.error('test')
crash
app = web.application(urls, globals())
def …Run Code Online (Sandbox Code Playgroud) google-app-engine persistence python-2.7 google-cloud-datastore
我在数据存储中创建了一个Login(Kind).在登录中,我创建了两个字段username和passsword.当用户更改密码时,我想更新数据存储区内的字段值.但是当我使用这段代码时,
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity passwordchange = new Entity("Login");
passwordchange.setProperty("password", "admin@123");
datastore.put(passwordchange);
Run Code Online (Sandbox Code Playgroud)
它会创建一个新行并插入密码"admin @ 123",而不是在同一行中更新新密码.
任何人都可以建议我如何更新字段的数据.
我们使用数据存储作为持久性后端在Google App Engine上运行应用程序.目前,应用程序主要具有"OLTP"功能和一些初步报告.在实施报告时,我们遇到使用数据存储区和GQL处理大量数据(数百万个对象)非常困难.为了使用适当的报告和商业智能功能增强我们的应用程序,我们认为最好设置ETL过程以将数据从Datastore移动到BigQuery.
最初我们考虑将ETL过程实现为App Engine cron作业,但看起来Dataflow也可用于此.我们有以下设置流程的要求
我的问题是
问题是这两种方法可行吗?哪一个更好的成本?有没有比上面两个更好的其他方式?
谢谢,
rizTaak
google-app-engine google-bigquery google-cloud-datastore google-cloud-dataflow
我正在尝试加速具有大型数据存储区PutMulti调用(500个实体)的Google App Engine请求处理程序,方法是将其拆分为多个实体并运行并发goroutine以发送较小的PutMulti调用(每个100个实体).
在此之前,当我在许多并发请求上测试处理程序时,我经常在截止日期之前Call error 11: Deadline exceeded (timeout)从我的PutMulti调用中获取数据存储区错误.在并行化之后,处理程序确实加速了,但我偶尔也会遇到这个错误以及另一种类型的错误API error 5 (datastore_v3: TIMEOUT): The datastore operation timed out, or the data was temporarily unavailable.
这个错误5是由于数据存储区中的争用造成的,错误5和11之间有什么区别?
有没有人曾经有这个错误?我无法在谷歌上找到任何一个曾经发生过这种情况的证据.
这是堆栈跟踪,它从数据存储区上的.delete()调用开始.
com.google.appengine.api.datastore.DatastoreFailureException: Unable to fetch global config
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:71)
at com.google.appengine.api.datastore.DatastoreApiHelper$1.convertException(DatastoreApiHelper.java:129)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:97)
at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$7.get(AsyncDatastoreServiceImpl.java:406)
at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$7.get(AsyncDatastoreServiceImpl.java:402)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:89)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:89)
at com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:76)
at com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:36)
at com.google.appengine.api.datastore.DatastoreServiceImpl.delete(DatastoreServiceImpl.java:76)
at com.universeprojects.cacheddatastore.CachedDatastoreService.delete(CachedDatastoreService.java:929)
Run Code Online (Sandbox Code Playgroud) 我正在Firestore中实现一个食谱书,其中每个用户都能够看到所有用户创建的所有食谱,但只允许食谱的原始作者编辑或删除食谱.任何用户也可以创建新配方.
我的问题是我无法在子集合父文档的字段上设置子集的权限以"监听".
每个食谱文档包含三件事.称为一个字段name存储配方的名称,其中,一个叫场creatorUID,其中request.auth.uid创作者的UID的存储和一个叫做子集合ingredients包含一些随机域的文档.
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
match /ListOfRecipes/{recipe} {
allow read, create: if isSignedIn();
allow update, delete: if resource.data.creatorUID == request.auth.uid;
match /{list=**} {
allow read: if isSignedIn();
// Should return true if recipe.creatorUID has same value as request.auth.uid
allow write: if recipe.creatorUID == request.auth.uid;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,使用这些规则它只能用于创建配方文档.db表示,子集合及其文档不会创建
FirebaseError:[code = permission-denied]:权限丢失或不足.FirebaseError:权限丢失或不足.
这些调用来自Angular客户端及其官方库.
firebase firebase-security angularfire2 google-cloud-firestore
我正在Google App Engine上编写应用程序,以帮助我更好地学习它.我将数据保存在数据存储区中.
该应用程序是类似于StackOverflow的模型:您有一个Story实体,它有一组Comment实体,而这些实体又可以被许多用户所喜欢/讨厌.我现在建模的方式如下:
class Story {
Comment[] comments;
...
}
class Comment {
User[] likes;
User[] hates;
...
}
Run Code Online (Sandbox Code Playgroud)
因此,当您加载给定的故事时,您可以列出所有评论,以及每个评论的喜欢和讨厌的百分比.您还可以跟踪给定用户是否已投票评论.
我假设我可以延迟加载Comment实体中的所有实际用户,但即便如此,我还是认为有更好的方法可以做到这一点.
这将如何处理一个有数百条评论的故事,每条评论都有数十万票?!
在NoSQL中建模这种概念的常用方法是什么?
google-app-engine data-modeling nosql google-cloud-datastore
我正在尝试创建一个围绕我的种类的包装器,这是我如何做到这一点:
package model
import (
"time"
)
type Kind interface {
Name() string
}
type Message struct {
Text string
CreatedOn time.Time
UserId string
}
func (q Message) Name() string {
return "MESSAGE"
}
Run Code Online (Sandbox Code Playgroud)
我介绍的原因type Kind interface是:
// Stores the given model for the the kind in data store
func Store(req *http.Request, data Kind) error {
ctx := appengine.NewContext(req)
key := datastore.NewKey(ctx, data.Name(), "", 0, nil)
_, err := datastore.Put(ctx, key, &data)
return err
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我正在使用data.Name()各种名称. …
当我访问Cloud Datastore Web管理时,"索引"部分下没有列出索引,我想明确定义一些索引以运行高级查询.我有一个yaml文件,看起来像:
indexes:
- kind: order
ancestor: no
properties:
- name: email
- name: name
- name: ownerId
- name: status
- name: updated_at
- name: created_at
direction: descRun Code Online (Sandbox Code Playgroud)
然后我运行以下命令来创建索引:
gcloud预览数据存储区创建索引indices.yaml
这是我得到的错误消息:
"AppInfoExternal类型的对象的意外属性'索引'"
有没有人遇到同样的问题?有任何想法吗?
问候,何塞
google-cloud-datastore google-cloud-platform google-cloud-sdk
go ×2
angularfire2 ×1
architecture ×1
concurrency ×1
firebase ×1
ftp ×1
java ×1
nosql ×1
persistence ×1
python-2.7 ×1