小编san*_*tel的帖子

在 Jenkinsfile 中使用 Dockerfile 创建的 docker 容器内运行命令

我创建了一个 Jenkins 管道文件并创建了一个 Jenkinsfile。在 Jenkinsfile 中,我使用了 Dockerfile 代理,然后运行了一些步骤。这些步骤应该在 docker 内部运行,但它们却在主机上运行。密码是她的。

#!/usr/bin/env groovy
@Library(['abc-jenkins','xyz-jenkins-library']) _
pipeline {
agent {
    dockerfile{
        dir 'TEST'
        filename 'dockerfile'
        label 'docker'
    }
}
stages {
    stage('Build Stage') {
        steps {
            echo 'testing stage running'
            sh "ls"
        }
    }
}   
}
Run Code Online (Sandbox Code Playgroud)

jenkins docker jenkins-pipeline

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

通过 JDBI dropwizard 使用自定义 where 条件

我正在尝试使用 dropwizard 探索 JDBI,我的客户代码如下。

public interface UserDao {
@SqlQuery("SELECT FROM `t_user` :cond")
@Mapper(UserMapper.class)
List<User> fetch(@Bind("cond") String cond);
}
Run Code Online (Sandbox Code Playgroud)

并尝试使用以下代码进行调用

Application.getJdbi().onDemand(UserDao.class).fetch("where logon_id="+p.getEmail()+"'");
Run Code Online (Sandbox Code Playgroud)

并得到以下问题

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `t_user` 'where logon_id=sanjaypatel2525@gmail.com\''' at line 1
Run Code Online (Sandbox Code Playgroud)

我遇到了引号问题,因为它是作为字符串传递的。通过这种方式,我试图为所有查询实现通用的 where 子句代码。我的问题是 1. 如何解决这个问题。2. 这是这样的代码的正确方法吗?或者我们可以使用准备好的语句。如果是的话怎么办。

非常感谢提前:)

java sql jdbi dropwizard

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

S3 预签名 URL 文件上传失败,使用安全/https URL

我有两个存储桶,一个是私有的,一个是公共的。私人将拥有带有 CannedAccessControlList.Private 的文件,而公共将拥有带有 CannedAccessControlList.PublicRead 的文件。除了这些,它们都是一样的。

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>PUT</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>



AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(AWS_ACCESS_KEY,AWS_SECRET_KEY));
            generatePresignedUrlRequest = new GeneratePresignedUrlRequest(AWS_BUCKET_PRIVATE_NAME, path,HttpMethod.PUT);
            generatePresignedUrlRequest.setExpiration(expiration); 
            generatePresignedUrlRequest.putCustomRequestHeader("x-amz-acl", CannedAccessControlList.Private.toString());
            generatePresignedUrlRequest.putCustomRequestHeader("content-type", fileType);
            url = s3client.generatePresignedUrl(generatePresignedUrlRequest);
Run Code Online (Sandbox Code Playgroud)

我可以在以下场景中将文件上传到 s3。默认情况下,所有生成的 URL 都是 https。1. 带有 https 的私有存储桶 2. 公共存储桶通过 https 失败,将 https 替换为 http 就可以了。

为什么公共存储桶上传失败 https 的问题。我无法在生产系统上使用 http,因为它安装了 ssl。

java amazon-s3

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

标签 统计

java ×2

amazon-s3 ×1

docker ×1

dropwizard ×1

jdbi ×1

jenkins ×1

jenkins-pipeline ×1

sql ×1