我用一些文件创建了s3存储桶.我使用该S3存储桶创建了CloudFront分配,并将状态更改为已部署.
当我为任何文件卷曲CloudFront时,我得到:
<Error><Code>TemporaryRedirect</Code><Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message><Bucket>MY-BUCKET</Bucket><Endpoint>MY-BUCKET.s3-eu-west-1.amazonaws.com</Endpoint><RequestId>...</RequestId><HostId>...</HostId></Error>
Run Code Online (Sandbox Code Playgroud)
当我为任何文件卷曲我的S3存储桶时,我得到了该文件内容.
我究竟做错了什么?如何强制cloudfront缓存文件,以便客户端不需要直接从S3获取数据?
考虑我有一个 maven 插件项目,我想将它发布到 Github 的公共 maven 存储库,称为“Github Packages”。我已经按照说明完成了所有工作,对于普通项目,一切开箱即用。但是对于带有 Packaging=maven-plugin 的 maven 插件项目,该指令不起作用。
在构建日志中,我看到如下内容:
[警告] 无法从/向 github ( https://maven.pkg.github.com/user-name/repo-name )传输元数据 repo-name/maven-metadata.xml :无法传输文件: https:/ /maven.pkg.github.com/user-name/repo-name/group-id/maven-metadata.xml。返回码是: 422 , ReasonPhrase:Unprocessable Entity。
似乎maven deploy 插件需要在group-id 的根目录下有maven-metadata.xml,但是找不到它,也没有人把它放在那里。如何解决这个问题呢?
我使用 Apache Maven 3.3.9,并使用以下命令:
mvn clean deploy
Run Code Online (Sandbox Code Playgroud)
--Addition: 我正在使用的 pom 文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>github</id>
<name>GitHub my_repo Apache Maven Packages</name>
<url>https://maven.pkg.github.com/my_nick/my_repo</url>
</repository>
</repositories>
<version>1.0.0</version>
<groupId>x</groupId>
<artifactId>some-plugin</artifactId>
<packaging>maven-plugin</packaging>
<dependencies> …Run Code Online (Sandbox Code Playgroud) java maven-plugin maven maven-deploy-plugin github-package-registry
在Spring DI中,我喜欢在@Configuration类中使用@Bean和工厂方法,而不是显式使用@Component注释.有没有办法对Spring Web的@Controller注释做同样的事情?换句话说,我可以在某些@Configuration类中通过工厂方法声明控制器而不是显式注释吗?
已经是 2016 年了,Java AWS SDK 没有真正的非阻塞 API,它避免了线程池(我的意思是每个 api 请求方案的线程)!但为什么?如果我想创建一个庞大的消息传递应用程序或最终基于 DynamoDB 的 Pokemon Go 杀手,我将需要扩展到数百个休息 api VM,而不是只有数十个,以防相同负载的非阻塞 IO(每秒数百万个请求) )。如果存储 apis 的重要部分每个请求使用线程,那么使用像 Akka 或 Vert.x 这样非常强大的东西对我有什么好处?
我知道 postgresql 不鼓励使用哈希索引。他们实际上说:
“注意散列索引操作目前没有 WAL 日志记录,因此在数据库崩溃后可能需要使用 REINDEX 重建散列索引。它们也不会通过流或基于文件的复制进行复制。出于这些原因,目前不鼓励使用散列索引.”
这是根本不使用它们的好论点,但我无法理解为什么 postgresql 开发人员不努力使哈希索引成为一等公民,并鼓励在某些情况下使用它们,而不是完全不鼓励这样做。
其实如果只求相等的话,hash索引应该比任何一种树都要好得多,因为它们在o(1)中进行查找、插入和删除,而平衡树自然不会比o(log( n))。在最坏的情况下,哈希索引可能适用于 o(n),但是有很多已知的技术可以避免最坏的情况。如果我是 db 引擎架构师,那么这样的论点肯定会影响我将哈希索引作为可行的替代方案的决定,但对于 postgresql,它似乎有所不同。这是否有技术原因,或者这样的决定不是出于技术动机?
我只是找不到使用 dynamodb 映射器注释将选定属性(而不是哈希键)投影到索引中的方法。
考虑一个例子:
@DynamoDBTable(tableName = "scores")
public class DynaScoreItem {
@DynamoDBHashKey
int user;
@DynamoDBRangeKey
int level;
@DynamoDBAttribute
int score;
@DynamoDBIndexRangeKey(localSecondaryIndexName = "sort_by_added")
long added;
}
Run Code Online (Sandbox Code Playgroud)
我只想将分数添加到“sort_by_ added”索引。如何使用注释来做到这一点?
考虑我有一个表,其中插入通常有两个字段:
user_id uuid,
date timestamp
Run Code Online (Sandbox Code Playgroud)
我也有一个普通的b树索引(user_id,date).
这种方法的问题是不能通过postgres并行地对不同的user_id进行插入,因为索引必须按顺序更新,因为它是一棵树,每次插入后都可以重新平衡,所以它必须等到每个特别插入完成.
我想要的是每个user_id的独立索引,以便插入可以并行完成.有办法吗?
-------编辑:Laurenz Albe的完美答案如下
java ×3
postgresql ×2
amazon-s3 ×1
asynchronous ×1
indexing ×1
maven ×1
maven-plugin ×1
nonblocking ×1
spring ×1
spring-mvc ×1
sql ×1