java:使用vfs s3插件在Amazon S3中使用服务器端加密

麦卡纳

为了在S3中复制文件,我使用的是vfs-s3-2.2.1.jar,com.intridea.io.vfs.provider.s3找到了S3FileObject我在其中使用复制文件的方法。在这种方法中,我发现以下代码:public void copyFrom(final FileObject file, final FileSelector selector)

try {
    if (srcFile.getType().hasChildren()) {
        destFile.createFolder();
        // do server side copy if both source and dest are in S3 and using same credentials
    } else if (srcFile instanceof S3FileObject) {
        S3FileObject s3SrcFile = (S3FileObject)srcFile;
        String srcBucketName = s3SrcFile.getBucket().getName();
        String srcFileName = s3SrcFile.getS3Key();
        String destBucketName = destFile.getBucket().getName();
        String destFileName = destFile.getS3Key();
        CopyObjectRequest copy = new CopyObjectRequest(
                srcBucketName, srcFileName, destBucketName, destFileName);
        if (srcFile.getType() == FileType.FILE && getServerSideEncryption()) {
            ObjectMetadata meta = s3SrcFile.getObjectMetadata();
            meta.setSSEAlgorithm(AES_256_SERVER_SIDE_ENCRYPTION);
            copy.setNewObjectMetadata(meta);
        }
        getService().copyObject(copy);
    } else if (srcFile.getType().hasContent() && srcFile.getURL().getProtocol().equals("file")) {
        // do direct upload from file to avoid overhead of making a copy of the file
        try {
            File localFile = new File(srcFile.getURL().toURI());
            destFile.upload(localFile);
        } catch (URISyntaxException e) {
            // couldn't convert URL to URI, but should still be able to do the slower way
            super.copyFrom(file, selector);
        }
    } else {
        super.copyFrom(file, selector);
    }
} catch (IOException e) {
    throw new FileSystemException("vfs.provider/copy-file.error", new Object[]{srcFile, destFile}, e);
} catch (AmazonClientException e) {
    throw new FileSystemException("vfs.provider/copy-file.error", new Object[]{srcFile, destFile}, e);
} finally {
    destFile.close();
}

在官方参考中,它使用这些方法

withSourceSSECustomerKey(sseKey)
withDestinationSSECustomerKey(newSseKey);

vfs-s3-2.2.1.jar S3FileObject的copyFrom方法中,找不到任何设置SSECustomerKey的方法。如何实现相同的目的。感谢您在这里寻找。

弗雷德里克·亨利

我没有测试,但是我快速查看了lib /代码-在https://github.com/abashev/vfs-s3/blob/branch-2.3.x/src/main/java/com/intridea/io/vfs中/provider/s3/S3FileSystemConfigBuilder.java有一种设置服务器端加密的方法

/**
 * use server-side encryption.
 *
 * @param opts The FileSystemOptions.
 * @param serverSideEncryption true if server-side encryption should be used.
 */
public void setServerSideEncryption(FileSystemOptions opts, boolean serverSideEncryption)
{
    setParam(opts, SERVER_SIDE_ENCRYPTION, serverSideEncryption);
}

因此,在致电之前,copyFrom您可以做

    S3FileSystemConfigBuilder.getInstance().setServerSideEncryption(
        S3FileSystemConfigBuilder.getInstance().getFileSystem().getFileSystemOptions(), 
        true);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Logstash的S3输出插件:使用AES256的服务器端加密

来自分类Dev

可以在策略中使用什么条件来强制要求服务器端加密的 S3 存储桶?

来自分类Dev

使用Python boto3在大量存储桶上进行S3默认服务器端加密

来自分类Dev

使用Apache Flume将数据流传输到Amazon S3时如何启用服务器端加密

来自分类Dev

既然S3支持使用用户提供的密钥进行服务器端加密,那么OpenTok可以将加密密钥发送到Amazon S3吗?

来自分类Dev

使用服务器端应用程序生成的签名URL从android将文件(视频文件)上传到S3服务器

来自分类Dev

强制对S3存储桶进行服务器端加密

来自分类Dev

Amazon S3客户使用PHP SDK提供的加密

来自分类Dev

Amazon S3客户使用PHP SDK提供的加密

来自分类Dev

如何使用Amazon S3服务Angle 2

来自分类Dev

如何使用Amazon S3服务Angle 2

来自分类Dev

使用AWS Powershell将数据从Amazon S3服务器复制到本地驱动器。

来自分类Dev

使用tinys3上传到Amazon S3

来自分类Dev

如何使用C#在Amazon S3 Web服务中执行发布对象操作?

来自分类Dev

在Node.js中使用Rickshaw / D3,对于服务器端,可以访问原始svg吗?

来自分类Dev

Amazon S3 Glacier存储与直接使用Amazon Glacier服务是否相同?

来自分类Dev

使用Java在Amazon S3上上传大型文件(大于1 GB):大型文件临时占用服务器大量空间

来自分类Dev

我如何将Amazon S3 CDN链接反向到WordPress Media文件,以便它们指向服务器的副本。使用W3总缓存

来自分类Dev

在Amazon S3上强制使用SSL

来自分类Dev

回形针错误-使用Amazon S3的NotIdentifiedByImageMagickError

来自分类Dev

使用NodeJS将文件上传到Amazon S3

来自分类Dev

如何在Amazon S3上使用cloudflare?

来自分类Dev

无法通过SSL使用Amazon S3 API?

来自分类Dev

无法使用ruby脚本从Amazon s3删除文件

来自分类Dev

使用Django将图像上传到Amazon S3

来自分类Dev

使用PHP从Amazon s3压缩并下载文件

来自分类Dev

如何使用通配符搜索Amazon S3存储桶?

来自分类Dev

使用Laravel从Amazon S3下载文件

来自分类Dev

使用Amazon s3时Django ImageField URL变慢

Related 相关文章

  1. 1

    Logstash的S3输出插件:使用AES256的服务器端加密

  2. 2

    可以在策略中使用什么条件来强制要求服务器端加密的 S3 存储桶?

  3. 3

    使用Python boto3在大量存储桶上进行S3默认服务器端加密

  4. 4

    使用Apache Flume将数据流传输到Amazon S3时如何启用服务器端加密

  5. 5

    既然S3支持使用用户提供的密钥进行服务器端加密,那么OpenTok可以将加密密钥发送到Amazon S3吗?

  6. 6

    使用服务器端应用程序生成的签名URL从android将文件(视频文件)上传到S3服务器

  7. 7

    强制对S3存储桶进行服务器端加密

  8. 8

    Amazon S3客户使用PHP SDK提供的加密

  9. 9

    Amazon S3客户使用PHP SDK提供的加密

  10. 10

    如何使用Amazon S3服务Angle 2

  11. 11

    如何使用Amazon S3服务Angle 2

  12. 12

    使用AWS Powershell将数据从Amazon S3服务器复制到本地驱动器。

  13. 13

    使用tinys3上传到Amazon S3

  14. 14

    如何使用C#在Amazon S3 Web服务中执行发布对象操作?

  15. 15

    在Node.js中使用Rickshaw / D3,对于服务器端,可以访问原始svg吗?

  16. 16

    Amazon S3 Glacier存储与直接使用Amazon Glacier服务是否相同?

  17. 17

    使用Java在Amazon S3上上传大型文件(大于1 GB):大型文件临时占用服务器大量空间

  18. 18

    我如何将Amazon S3 CDN链接反向到WordPress Media文件,以便它们指向服务器的副本。使用W3总缓存

  19. 19

    在Amazon S3上强制使用SSL

  20. 20

    回形针错误-使用Amazon S3的NotIdentifiedByImageMagickError

  21. 21

    使用NodeJS将文件上传到Amazon S3

  22. 22

    如何在Amazon S3上使用cloudflare?

  23. 23

    无法通过SSL使用Amazon S3 API?

  24. 24

    无法使用ruby脚本从Amazon s3删除文件

  25. 25

    使用Django将图像上传到Amazon S3

  26. 26

    使用PHP从Amazon s3压缩并下载文件

  27. 27

    如何使用通配符搜索Amazon S3存储桶?

  28. 28

    使用Laravel从Amazon S3下载文件

  29. 29

    使用Amazon s3时Django ImageField URL变慢

热门标签

归档