小编unk*_*own的帖子

Amazon S3 无法通过 Cloudfront 上传文件

我想通过带有签名 URL 的 Cloudfront 将文件上传到 S3。Cloudfront Behavior 中允许 HTTP PUT。桶策略

             {
        "Sid": "2",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1C2T5UJU07REZ"
        },
        "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject"
        ],
        "Resource": "arn:aws:s3:::testback/*"
    }
Run Code Online (Sandbox Code Playgroud)

CORS 配置中允许使用 HTTP PUT。Cloudfront 用户还具有读取、写入权限。当我尝试上传带有签名 URL 的文件时。

curl -v -X PUT -F file=@hello.txt  http://my-host.cloudfront.net/hello.txt?Expires=1514764800&Signature=MySig&Key-Pair-Id=My-KeyPair
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

InvalidRequest您提供的授权机制不受支持。请使用 AWS4-HMAC-SHA256。5D5DEF3D06F4583C8rBCpTUzYwm1ccc8IfkNtUnkuLxr3RZ2n7xn1j+VvP5dpG+3NMpHKPiNQ5tKpJjVliZ9UBI52vk=

日志:

2017-06-19 03:23:08 FRA54 726 My-IP PUT
my-host.cloudfront.net /hello.txt 400 -
curl/7.50.1
Expires=1514764800&Signature=My-Sig&Key-Pair-Id=My-KeyPair -错误 MMHwKFzGuBzrlgP0yV71elcwEp2RVBAwJRJD1A5rO4Na6UmeKvcZPQ==
my-host.cloudfront.net http 838 0.235 - --
错误 HTTP/1.1

此外,GET,DELETE 工作正常。

amazon amazon-s3 amazon-cloudfront

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

在 PyQt 中使用 paho-mqtt

如何使用 QThread 的回调函数?

回调函数 on_message 不打印任何数据。在 run() 中,我连接到 mqtt-broker 并订阅主题。当我收到新消息时,on_message 必须工作。

示例简单的 QT 应用程序。改变值事件与简单的 QLCD 相连。订阅主题取自仪表板

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtCore import Qt, QThread, pyqtSignal
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,
                             QVBoxLayout, QApplication)
from random import uniform, normalvariate, randint
import time
import paho.mqtt.client as mqtt
import paho.mqtt.subscribe as subscribe

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        lcd = QLCDNumber(self)
        self.data=DataThread()
        vbox = QVBoxLayout()
        vbox.addWidget(lcd)

        self.setLayout(vbox)
        self.data.valueChanged.connect(lcd.display)
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Callback')
        self.data.start()
        self.show() …
Run Code Online (Sandbox Code Playgroud)

python pyqt mqtt pyqt5

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

标签 统计

amazon ×1

amazon-cloudfront ×1

amazon-s3 ×1

mqtt ×1

pyqt ×1

pyqt5 ×1

python ×1