我知道使用SDK的1.x版,就像按照文档一样简单
java.util.Date expiration = new java.util.Date();
long msec = expiration.getTime();
msec += 1000 * 60 * 60; // Add 1 hour.
expiration.setTime(msec);
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectKey);
generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
generatePresignedUrlRequest.setExpiration(expiration);
URL s = s3client.generatePresignedUrl(generatePresignedUrlRequest);
Run Code Online (Sandbox Code Playgroud)
但是看2.0文档,但我找不到与之接近的任何东西GeneratePresignedUrlRequest。
希望有另外一个简单的模式吗?
我试图根据两个不同列的组合将表中的项保持唯一.
我有一个instanceId和imageId列(以及其他)并基于Stackoverflow和AWS论坛上的几个帖子,下面应该有效吗?
public void saveUnique(Server server) {
DynamoDBSaveExpression saveExpression = new DynamoDBSaveExpression();
Map<String, ExpectedAttributeValue> expectedAttributes =
ImmutableMap.<String, ExpectedAttributeValue>builder()
.put("instanceId", new ExpectedAttributeValue(false))
.put("imageId", new ExpectedAttributeValue(false))
.build();
saveExpression.setExpected(expectedAttributes);
saveExpression.setConditionalOperator(ConditionalOperator.AND);
try {
mapper.save(server, saveExpression);
} catch (ConditionalCheckFailedException e) {
//Handle conditional check
}
}
Run Code Online (Sandbox Code Playgroud)
但是,每次我尝试保存重复项(相同的instanceId和imageId)时,它都会成功保存到数据库中.
我在这里错过了什么?
EDIT RE notionquest回答
更新到下面的答案.
我有一个每分钟运行一次API的工作.API的响应表示为ServerPOJO.它Server有一个名为的属性instanceId.
我要确保,如果Server与instanceId已经在数据库中,不救它.
该Server对象的另一个属性id设置为表主键.
public void saveUnique(Server server) {
DynamoDBSaveExpression saveExpression = new DynamoDBSaveExpression();
Map<String, ExpectedAttributeValue> …Run Code Online (Sandbox Code Playgroud) 我将缩略图作为字节数组保存在数据库中。我似乎无法弄清楚如何通过 GraphQL 将这些返回给前端客户端。
在标准 REST 方法中,我只需发送一个带有字节的 POJO,然后我就可以轻松地将其渲染出来。
然而试图返回 abyte[]正在抛出
无法将类型定义 (ListType{type=NonNullType{type=TypeName{name='Byte'}}}) 与 java 类型 (class java.lang.Byte) 匹配:Java 类不是 List 或泛型类型信息丢失:类 java.lang.Byte
该错误是描述性的,告诉我出了什么问题,但我不知道如何解决。
我的thumbnail.graphqls样子:
type Thumbnail {
id: ID!
resource: [Byte!]
}
Run Code Online (Sandbox Code Playgroud)
和缩略图 POJO
public class Thumbnail extends BaseEntity {
byte[] resource;
}
Run Code Online (Sandbox Code Playgroud)
我graphql-spring-boot-starter在Java端使用来处理事情,并且我认为它支持Byte开箱即用,那么我哪里出了问题?
对 GraphQL 非常陌生,因此这可能是一个明显的错误。
干杯,
我正在尝试返回一个GroupedList包含来自两个页面的信息dataobjects.有没有一种简单的方法将两个列表合并在一起?
public function getGroupedContent()
{
$dataobjects = GroupedList::create(FileNetObject::get());
$pages = GroupedList::create($this->Children());
$result = ??;
return $result;
}
Run Code Online (Sandbox Code Playgroud)
该ArrayList合并失败一样标准的array_merge-我建议最好从查询把它变成一个单一的前合并在一起的结果GroupedList?
如何在启动操作的CMS后端添加按钮?我可以在我想要的地方显示按钮:
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldsToTab("Root.ButtonTest", array(
FormAction::create('doAction', 'Action button')
)
);
return $fields;
}
public function doAction()
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
但是,单击时添加的按钮不执行任何操作.
我已经看到了一个如何在主操作栏上放置按钮(保存/发布旁边)的例子,但这不是我想要做的.
查看我能找到的唯一文档页面,我是否需要在以下内容中执行以下操作:
public function getCMSActions()
{
$actions = parent::getCMSActions();
//Something here?
}
Run Code Online (Sandbox Code Playgroud)
目前还不是很清楚如何创建按钮调用的动作.
var str = "7-Dec-1985"
var str = "12-Jan-1703"
var str = "18-Feb-1999"
我如何才能从弦乐中拔出一年?我尝试了许多不同的RegExp,但似乎都没有工作.
我本以为re = new RegExp(/(\d+)\D*\z/);有工作但遗憾却没有.
任何建议将非常感激
这应该是微不足道的,但由于某种原因,我似乎无法做到正确。
我有以下 JSON 响应
{
"info": "processing",
"data": {
"id": "123",
"cars": [
{
"id": "1"
},
{
"id": "2"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我试过用简单的 POJO 转换它
@JsonRootName(value = "data")
public class Product {
String id;
List<Car> cars;
}
Run Code Online (Sandbox Code Playgroud)
和
public class Car {
String id;
}
Run Code Online (Sandbox Code Playgroud)
但这会返回一个Productid 和 products 为 null的空对象。当然我不需要JsonDeserialize为这个简单的动作编写自定义?
我试图了解如何使用带有 Spring Boot 的 websockets 向 Javascript 应用程序发布/广播消息。我能找到的所有示例都在使用StompJs客户端 - 但是我无法StompJs在我的客户端代码中使用,而且我不确定我的后端是否正确,这无济于事。
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/subscribe")
.setAllowedOrigins("*")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
Run Code Online (Sandbox Code Playgroud)
只需使用一个简单@Scheduled的每 5 秒产生一次时间,并将其发送到time主题(好吧,我相信这就是它在做什么......)
@Component
@Slf4j
public class TimeSender {
private static final DateTimeFormatter TIME_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss");
private SimpMessagingTemplate broker;
@Autowired
public TimeSender(final SimpMessagingTemplate broker) {
this.broker = broker;
}
@Scheduled(fixedRate = 5000)
public void …Run Code Online (Sandbox Code Playgroud) 使用很棒的库 acme4j,我创建了 3 个文件。
我遇到的问题是,当我将它们转换为 keystore.p12 时,我无法让 Spring Boot 使用它。我使用以下命令创建了 keystore.p12 文件:
openssl pkcs12 -export -out keystore.p12 -inkey domain.key -in domain-chain.crt
Run Code Online (Sandbox Code Playgroud)
配置是这样设置的
server:
port: 9443
ssl:
key-store: keystore.p12
key-password: secret
key-store-type: PKCS12
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试击中终点,我就会javax.net.ssl.SSLHandshakeException: no cipher suites in common被抛出。
这似乎是一个相对常见的问题,一个建议是按照https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html启用调试
所以,这样做并再次击中终点我可以看到
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.918 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: …Run Code Online (Sandbox Code Playgroud) 我的网站结构是所有自定义页面类型,具有从Page.php扩展的单个父页面。
class CustomPage extends Page {}
class Custom_Controller extends Page_Controller {
//load all javascript/css for entire site here etc
}
class SomeClass extends CustomPage {}
class SomeClass_Controller extends Custom_Controller
{
// etc etc you get the point.
}
Run Code Online (Sandbox Code Playgroud)
现在,站点中的所有其他页面分别从CustomPage和Custom_Controller扩展。Page.php几乎是空的。
现在,使用未在内部编写的模块时就会出现问题。例如,Blog *模块将不会继承新基类Custom_Controller中定义的javascripts / css / functions,因为它被设置为扩展Page_Controller。
从根本上使Blog_Controller扩展Custom_Controller而不修改Blog模块的理想方法是什么?
*博客模块只是一个例子。这适用于所有模块。
我有一些不同的单选按钮,可以返回种族和性别.该脚本在内部应用程序内部运行,因此不是返回"boy","girl"或"both",而是返回7707330,7707333和7707336.类似于种族单选按钮.
然后,我需要根据种族和性别的组合验证数据.这是一个非常简单的任务,但我最终得到了15个if语句!一切都按预期工作,但必须有一个更清洁的解决方案?
function test(radioResults) {
var1 = radioResults[0].toString();
var2 = radioResults[1].toString();
var roll = parseFloat(parent.roll);
if (var2 == '7707330') {
gender = 'boy';
}
if (var2 == '7707333') {
gender = 'girl';
}
if (var2 == '7707336') {
gender = 'both';
}
if (var1 == '7707341') {
maori(gender);
}
if (var1 == '7707344') {
pasifika(gender);
}
if (var1 == '7707347') {
all(gender);
}
}
function maori(gender) {
//Maori
if (gender == 'boy') {
ethnicity = parseFloat(parent.getMBoys);
validation(ethnicity);
}
if (gender …Run Code Online (Sandbox Code Playgroud) java ×6
silverstripe ×3
spring-boot ×3
javascript ×2
php ×2
amazon-s3 ×1
button ×1
code-cleanup ×1
extends ×1
graphql ×1
if-statement ×1
jackson ×1
json ×1
lets-encrypt ×1
refactoring ×1
regex ×1
ssl ×1
websocket ×1