我目前有一个用appscript编写的应用程序,用于将一些CSV文件从云存储导入bigquery.虽然这很简单,但我不得不指定目标表的模式.
我正在寻找的是一种读取CSV文件并根据第一行中的列名创建模式的方法.如果所有变量类型最终都是字符串,那也没关系.我觉得这是一个非常常见的场景..有没有人对此有任何指导?
非常感谢,尼克
我正在寻求在我的API中实施针对CSRF攻击的保护,我使用GAE端点开发了所有方法所需的oAuth2.
在实施任何特定保护之前,我试图实际破坏我的应用程序(CSRF看起来很简单乍一看).但只是无法使其发挥作用.
当我在另一个页面中引用我的端点时,浏览器会添加cookie信息,但不会添加带有承载访问令牌的Authorization标头.这似乎不够,因为我的端点会自动返回带有www-authenticate:Bearer realm="https://accounts.google.com/"标头的401 .
正如我所说,我没有针对CSRF的具体保护.但在HTTPS下使用带有oAuth2的Google Cloud Endpoints是否可以"免费"保护我免受此类攻击?
- 编辑以发表评论
我尝试了一个简单的CSRF攻击.我得到了一个页面<img src="https://bla-bla-bla-appspot.com/_ah/api/myapi/v1/resource.getMethod">.然后我在另一个选项卡中打开我的应用程序时访问了此页面,因此我的浏览器将发送我的身份验证信息.它确实发送了cookie,但不是我的oAuth令牌).
我甚至没有尝试过POST,如果我"破解"一个GET就已经很好了.
我在使用电子表格时遇到了一些问题:如标题中所述,我在列中添加了一个公式,该公式根据另一个单元格的值调用自定义脚本,但是当我修改其他单元格时,公式不会更新..这似乎适用于标准公式,但是,在我的单元格中调用我的脚本:
这是我的剧本.如果没有单词:对于给定的'company'参数,它会搜索符合此条件的所有行并将第3列单元格存储在变量中,最后返回(因此返回最后一个值):
function getLastStatut(company) {
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
var out = "not found";
var row;
for(i in values){
row = values[i];
if(row[1]==company){
out = row[2];
}
}
return out;
}
Run Code Online (Sandbox Code Playgroud)
例如:
所以A4显示"Running",但是如果我改变A3,它仍然显示"Running",而它应该显示A3的值.
这是一个错误还是我做错了什么?欢迎任何帮助.
亚历克西斯
我有一个电子表格,我希望能够使用函数而不是使用自动填充来扩展列数,因为新单元格正在填充基于复杂公式的内容并且取决于很多东西.在其中一个单元格中,我希望内容类似于=SUM(A1:A8)
但是,如果我这样做,cell.setValue("=SUM(A1:A8)")我会得到"错误:未知范围名称A1",除非我之后编辑单元格内容并按Enter键,而不是真正更改其内容.
有没有办法解决这个问题?我不希望计算在扩展列函数中,因为我希望在其中一个引用的单元格发生更改时更新单元格计算.除了让onEdit函数监听引用单元格中的更改并更新计算之外,还有其他方法吗?
谢谢