在python3中使用boto3和warrant。无头系统。尝试使用授权的 ASWSRP 使用 python 脚本登录。使用用户池存在更改临时密码的问题。所以......我有代码首先尝试临时密码,当失败时它切换到尝试永久密码。我遇到了几个不同的问题:
1)更改临时密码并再次运行脚本后,出现异常:
botocore.errorfactory.NotAuthorizedException
我似乎无法从 boto3 或 botocore 导入该异常。我如何捕获该异常?
2) 我有时会尝试使用过多的密码。
调用 InitiateAuth 操作时发生错误 (NotAuthorizedException):超出密码尝试次数
显然我需要等待一段时间。有人知道那是什么吗?该时间段可以在我的用户池或帐户中设置吗?
代码:
import boto3
from warrant.aws_srp import AWSSRP
from warrant.exceptions import ForceChangePasswordException
userName = 'XXXXXXXX'
tempPassword = 'XXXXXXXX'
poolId = 'us-east-1_XXXXXXXX'
poolRegion = 'us-east-1'
clientId = 'XXXXXXXXXXXXXXXXXXXXXXXXXX'
#clientSecret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
client = None
finalPassword = "YYYYYYYYY"
try:
client = boto3.client('cognito-idp')
aws = AWSSRP(
userName,
tempPassword,
poolId,
clientId,
client=None)
tokens = aws.authenticate_user()
except ForceChangePasswordException:
aws.set_new_password_challenge(finalPassword, client=None)
aws = AWSSRP(
userName,
finalPassword,
poolId,
clientId, …
Run Code Online (Sandbox Code Playgroud) 我正在运行单元测试,这可能需要一些时间才能完成,在bash shell中,这些测试在运行时打印输出.我希望打印此输出,并且我还希望将输出存储在变量中.但是,如果可能的话,我希望这些内容可以同时完成,就像tee
写入文件时命令一样.也许tee
在这种情况下工作......
所以我目前正在这样做:
output=$(ginkgo -r -cover)
echo "$output"
Run Code Online (Sandbox Code Playgroud)
但是,在所有测试运行之前,这显然不会打印单元测试输出.那么如何在测试运行时将输出打印出来,同时将输出存储在变量中呢?
我有一个包含大量 SVG 图标的网页,这些图标将位于 HTML 中。我不会将它们作为 IMG 标签包含在内,并且可能会因为这些 HTTP 请求而减慢页面速度,而是将 SVG 代码放置为如下所示:
<svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 9 9"><path fill="#C5C2BD" fill-rule="nonzero" d="M4.5 3.435L1.286.22A...LOTS OF CODE HERE..."/></svg>
Run Code Online (Sandbox Code Playgroud)
注意:当它说“这里有很多代码”时,有一大串数字/字母组成了这个 SVG 的路径。
这产生的问题是,当在 HTML 中不容易维护时,它非常难看(以至于我的编辑器陷入困境,因为这些 SVG 字符串太长了)。
是否有一种更干净、更简单的方法可以将这些 SVG 图标包含在我的 HTML 中,同时仍然消除额外的 HTTP 请求?
谢谢你的时间。
我写了这个简单的http服务器来提供视频文件:
package main
import (
"net/http"
"os"
"bytes"
"io"
"fmt"
)
func handler(w http.ResponseWriter, r *http.Request) {
rangeValue := r.Header.Get("range")
fmt.Println("Range:")
fmt.Println(rangeValue)
buf := bytes.NewBuffer(nil)
f, _ := os.Open("oceans_1.webm")
io.Copy(buf, f) // Error handling elided for brevity.
f.Close()
w.Header().Set("Accept-Ranges","bytes")
w.Header().Set("Content-Type", "video/webm")
w.Header().Set("Content-Length","22074728")
w.Header().Set("Last-Modified", "Wed, 29 Nov 2017 17:10:44 GMT")
w.WriteHeader(206)
w.Write(buf.Bytes())
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)
该视频服务完美,但我无法更改视频的时间.当我点击时间轴视频光标时,它不会改变位置,视频也不会跳转到特定时间.
当我使用http.ServeFile(w, r, "oceans_1.webm")
一切完美的服务视频时,我可以改变视频时间.
我正在使用 PyQt 为项目制作 GUI。
图形用户界面截图
输入数字并提交后,我需要执行将在后台运行的函数,否则应用程序会冻结,直到进程完成。
我还需要在函数产生的暗箱中输出日志。
这是图形用户界面代码:
import sys
from PyQt5.QtWidgets import (
QWidget,
QDesktopWidget,
QLineEdit,
QGridLayout,
QLabel,
QFrame,
QPushButton,
QApplication,
QTextEdit
)
from PyQt5.QtGui import (QTextCursor)
from bot.bot import (run, slack_notification)
from multiprocessing import Process, Pipe
class LogginOutput(QTextEdit):
def __init__(self, parent=None):
super(LogginOutput, self).__init__(parent)
self.setReadOnly(True)
self.setLineWrapMode(self.NoWrap)
self.insertPlainText("")
def append(self, text):
self.moveCursor(QTextCursor.End)
current = self.toPlainText()
if current == "":
self.insertPlainText(text)
else:
self.insertPlainText("\n" + text)
sb = self.verticalScrollBar()
sb.setValue(sb.maximum())
class App(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
label = QLabel('Amount')
amount_input …
Run Code Online (Sandbox Code Playgroud) 我最近开始使用vue,并且已经设法创建了一些简单的页面,但是我注意到加载后的组件没有被缓存,因此,例如在下面的链接(这是我正在研究的)上,youtube视频需要时间加载,如果我单击任何其他链接并返回到视频,则会再次加载它们。
是否可以用来缓存组件?最好将它们全部替换为1比1。
这是我的主意:
import VueRouter from 'vue-router';
import Create from '../components/homepage/create.vue';
import How from '../components/homepage/how.vue';
import About from '../components/homepage/about.vue';
import Youtube from '../components/homepage/youtube.vue';
import Navigation from '../components/homeNavigation.vue';
import Login from '../components/auth/login.vue';
import Register from '../components/auth/register.vue';
const routes = [
{ path: '/create', component: Create },
{ path: '/how', component: How },
{ path: '/about', component: About},
{ name: 'youtube', path: '/youtube', component: Youtube},
{ path: '/login', component: Login},
{ path: '/register', component: Register},
];
Vue.use(VueRouter);
Vue.component('navigation', Navigation);
const router = …
Run Code Online (Sandbox Code Playgroud) 我在Symfony 3.3.13全栈应用程序中收到了弃用通知.
自Symfony 3.3以来,自动装配类型已被弃用,将在4.0中删除.使用别名代替"Psr\Log\LoggerInterface".
请注意,这来自Symfony源代码,而不是我的代码.
单击"显示跟踪"显示它位于文件vendor/symfony/monolog-bundle/DependencyInjection/MonologExtension.php中.
代码是:
if (method_exists('Symfony\Component\DependencyInjection\Definition', 'addAutowiringType')) {
$container->getDefinition('monolog.logger')->addAutowiringType('Psr\Log\LoggerInterface');
}
Run Code Online (Sandbox Code Playgroud)
我怀疑我需要更新我的composer.json文件中的monolog-bundle版本,但是无法弄清楚正确的版本.它目前设置为"~2.8".
我有 2 个模型/带注释的类,ProductDetails 和 VnfDetails。我想使用 JPA HIbernate 将 2 个表与 @OnetoMany 关系连接起来
ProductDetails模型类如下,带有 @OnetoMany 映射:
@Entity
@Table(name="product_details")
public class ProductDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private int id;
@Column(name="PRODUCT_ID")
private String productId;
@Column(name="PRODUCT_NAME")
private String productName;
@OneToMany(mappedBy="productDetails", cascade=CascadeType.ALL)
private Set<VnfDetails> vnfd;
public Set<VnfDetails> getVnfd() {
return vnfd;
}
public void setVnfd(Set<VnfDetails> vnfd) {
this.vnfd = vnfd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProductId() {
return …
Run Code Online (Sandbox Code Playgroud) 我有一个表,它以父子格式存储层次结构数据,并带有一个顶部节点。多个级别,每个父母都有多个孩子。如何编写递归查询以仅选择从特定节点到最后一个子节点的父子行?
示例表
Parent|child
1 |2
1 |3
2 |4
2 |5
3 |6
3 |7
6 |8
Run Code Online (Sandbox Code Playgroud)
如何仅从节点 3 及其所有后代中检索行?
我很难理解Google Cloud Platform的产品集。我有一个App Engine应用程序,正在尝试在免费配额内运行。
我可以访问关系数据库。免费套餐中有我可用的吗?似乎并非如此,但是我可以在Google Compute Engine上安装一个吗?