我尝试做的是通过AWS控制台为CloudFront发行版启用标准日志记录,如下图所示:
我设置了以下 S3 存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::931426637260:user/relu"
},
"Action": [
"s3:GetBucketAcl",
"s3:PutBucketAcl"
],
"Resource": "arn:aws:s3:::[...]"
}
]
}
Run Code Online (Sandbox Code Playgroud)
“阻止所有公共访问”已关闭。
不过,我不断收到此错误:
您为 CloudFront 日志指定的 S3 存储桶未启用 ACL 访问:[...].s3.amazonaws.com
即使我尝试以 root 用户身份启用日志记录,也会收到此错误。
有人知道可能出了什么问题吗?
我正在构建一个应用程序,Symfony 4我想遵循Web资产的最佳实践.我使用Encore/Webpack for SCSS和JS,它运行良好; 生成的JS + CSS很好地存储在/ public/build文件夹中.我坚持如何存储和使用静态资产,如图像,电影,声音.
图像应该存储在"公共/图像"文件夹还是"资产/图像"中?
还有一些后续问题:
如果存储图像public/images,如果我通过asset('...')电话污染模板,我会获得任何好处吗?
如果图像存储在assets/images,则:
public/images通过http服务的?./bin/console assets:install什么也没做,说:'[OK]没有资产是由任何捆绑提供的..问候,
我尝试在docker容器上运行一个简单的Symfony 4项目.我已经测试了常规PHP脚本,并且它们运行良好.但是,使用Symfony项目,执行变得非常缓慢.例如,没有任何重要内容的页面需要5-6秒.
我附上了Symfony的性能分析器的截图.

您是否知道如何将执行时间缩短到可接受的水平?
在使用时Symfony 3.3,我宣布这样的服务:
class TheService implements ContainerAwareInterface
{
use ContainerAwareTrait;
...
}
Run Code Online (Sandbox Code Playgroud)
在我需要EntityManager的每个动作中,我从容器中获取它:
$em = $this->container->get('doctrine.orm.entity_manager');
Run Code Online (Sandbox Code Playgroud)
这有点烦人,所以我很好奇Symfony是否有类似的东西EntityManagerAwareInterface.
如何获得泛型中“枚举”的值?
public class Sorter<T extends Enum<?>> {
public Sorter() {
T[] result = T.values(); // <- Compilation error
}
}
Run Code Online (Sandbox Code Playgroud)
另一方面,我可以查询Enum类的values():
enum TmpEnum { A, B }
public class Tmp {
void func() {
T[] result = TmpEnum.values(); // <- It works
}
}
Run Code Online (Sandbox Code Playgroud) 尝试在 Symfony 3.3 中使用序列化器组件。我与具有“DateTime”成员的实体斗争。
我的 config.yml 序列化程序初始化:
serializer:
enable_annotations: true
Run Code Online (Sandbox Code Playgroud)
在 service.yml 中添加了这个:
datetime_method_normalizer:
class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
public: false
tags: [serializer.normalizer]
Run Code Online (Sandbox Code Playgroud)
反序列化后的代码如下所示:
$yml = [...] // It was created by serializer->serialize()
$serializer = $this->get('serializer');
$myObject = $serializer->deserialize($yml, MyObject::class, "yaml");
Run Code Online (Sandbox Code Playgroud)
错误是: Expected argument of type "DateTime", "string" given在 vendor/symfony/symfony/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php(第 204 行)
我认为 DateTimeNormalizer::denormalize 永远不会被调用。知道如何让它恢复生机吗?
信息:DateTimeNormalizer::__constructor() 被调用。
当本地运行jboss/keycloak容器时,我尝试添加更多软件。
到目前为止,我已经尝试过:
~# yum install jq
bash: yum: command not found
~# apt-get install jq
apt-get: command not found
Run Code Online (Sandbox Code Playgroud)
有人知道如何安装更多软件吗?
# uname -a
Linux 935559ef2e4c 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
看起来这microdnf是我必须使用的,但我仍然收到错误:
root@276cdd5cc962 /]# microdnf update -y
(microdnf:1614): librhsm-WARNING **: 20:38:39.628: Found 0 entitlement certificates
(microdnf:1614): librhsm-WARNING **: 20:38:39.630: Found 0 entitlement certificates
(microdnf:1614): libdnf-WARNING **: 20:38:39.630: Loading "/etc/dnf/dnf.conf": IniParser: Can't open file
Downloading metadata...
Downloading metadata...
Downloading …Run Code Online (Sandbox Code Playgroud) 我的数据存储在许多存储库中,我们希望有一组任务(又名作业)来处理这些数据。每项工作都需要访问一两个数据存储库。大文件的任务预计最多运行 8 小时,小文件的运行时间预计为几毫秒。重要的是作业只执行一次并且不会被遗漏。
我们需要设置更多在容器中运行的代理,以便它们执行任务。在启动时,每个代理都被授予访问一组存储库的权限。每个代理应该只运行可以完成的作业。例如,将需要访问“R1”和“R2”存储库的作业分配给只能访问“R2”、“R3”、“R4”和“R5”的代理是没有意义的。
RabbitMQ 似乎是这个场景的一个很好的候选者。但我觉得它不可靠,原因如下:
我应该使用 Redis 来避免处理同一条消息两次吗?
为了获得出色的可靠性,我是否应该运行一个不时重新填充队列的进程?
“主题”交换是否是将消息仅定向到可以处理它们的代理的好解决方案?如果是这样,在相应的代理启动之前发送消息的情况如何处理?
当然,如果您认为其他技术比 AMQP 更适合这项工作,请随时推荐它们。
使用Doctrine 2和Symfony 3,是否有一种自动加密列的简单方法?
理想情况下,它应该像这样工作:
/**
* @ORM\Column(name="secret", type="string")
* @Encrypted
*/
private $secret;
Run Code Online (Sandbox Code Playgroud)
或者,是否有支持加密的官方(或非常受欢迎)捆绑包?
我创建了一个Symfony 3预计会运行数天(甚至数周)的命令。它Doctrine 2用于读取一些初始数据和不时写入执行状态。SQL 预计需要几毫秒。
我担心的是,如果 MySQL 连接因不活动而关闭,整个过程最终会崩溃。
问题:Doctrine 是否在flush调用之间保持数据库连接打开?或者,是否每次flush调用都重新连接?
给定
List<Integer> list = ...
Run Code Online (Sandbox Code Playgroud)
我想用 AssertJ 测试它是否已排序。就像是:
assertThat(list).isSorted()
Run Code Online (Sandbox Code Playgroud)
是否可以?
symfony ×6
docker ×2
doctrine-orm ×2
java ×2
php ×2
symfony-3.3 ×2
amazon-s3 ×1
amqp ×1
architecture ×1
assertj ×1
assets ×1
encryption ×1
generics ×1
keycloak ×1
rabbitmq ×1
symfony4 ×1