相关疑难解决方法(0)

为大于5GB的文件计算Amazon-S3 Etag的算法是什么?

上传到Amazon S3的小于5GB的文件有一个ETag,它只是文件的MD5哈希,这使您可以轻松检查本地文件是否与您在S3上的文件相同.

但是如果你的文件大于5GB,那么亚马逊会以不同的方式计算ETag.

例如,我在380个零件中进行了5,970,150,664字节文件的分段上传.现在S3显示它有一个ETag 6bcf86bed8807b8e78f0fc6e0a53079d-380.我的本地文件有一个md5哈希值702242d3703818ddefe6bf7da2bed757.我认为短划线后面的数字是分段上传中的部件数量.

我还怀疑新的ETag(在破折号之前)仍然是MD5哈希,但是在某种程度上从分段上传中包含了一些元数据.

有谁知道如何使用与Amazon S3相同的算法计算ETag?

amazon-s3 s3cmd

64
推荐指数
9
解决办法
3万
查看次数

Amazon S3中的Etag定义已更改

我已经使用Amazon S3进行一段时间的备份了.通常,在我上传文件后,我会检查MD5总和匹配,以确保我做了一个很好的备份.S3有"etag"标题用于给出这个总和.

但是,当我最近上传一个大文件时,Etag似乎不再是md5总和.它有额外的数字和连字符"696df35ad1161afbeb6ea667e5dd5dab-2861".我找不到任何关于这种变化的文件.我已经使用S3管理控制台和Cyber​​duck进行了检查.

我找不到有关此更改的任何文档.有什么指针吗?

amazon-s3

51
推荐指数
6
解决办法
5万
查看次数

亚马逊S3和校验和

我尝试验证上传到存储桶的文件的完整性,但我没有找到任何相关信息.

在文件的标题中,有一个"E-tag",但我认为它不是md5校验和.

那么,我如何检查我在Amazon S3上上传的文件是否与我在计算机上的文件相同?

谢谢.:)

checksum amazon-s3

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

AWS S3 - Etag Sha256 而不是 Md5

我想使用 Sha256 作为我的对象的校验和。但看起来亚马逊在 ETag 中使用了 md5。

有什么解决方法吗?

amazon-s3 amazon-web-services

9
推荐指数
2
解决办法
2万
查看次数

将文件上传到S3时,aws-cli是否确认校验和,或者我是否需要自行管理?

如果我使用aws-cli(即使用aws s3 cp)将数据上传到S3 ,aws-cli是否会做任何工作来确认S3中的结果文件是否与原始文件匹配,或者我是否需要自己管理?

根据这个答案putObject()的Java API文档,看起来可以在上传后验证MD5校验和.但是,我无法找到关于aws-cli是否真的这样做的明确答案.

这对我来说很重要,因为我打算从备份过程中上传GPG加密的文件,我想确信存储在S3中的内容实际上与原始文件匹配.

amazon-s3 amazon-web-services

7
推荐指数
2
解决办法
4371
查看次数

将 S3 对象的内容流式传输到哈希算法 node.js

我是 node.js 的新手,我正在尝试编写一个 AWS lambda 函数,该函数将 s3 对象的内容流式传输到节点的加密模块中,以创建 s3 对象的 md5 校验和值。不知道为什么,但每次我运行代码时,它都会在 console.log 上生成不同的哈希值。谁能指出我正确的方向来修复我的代码?感谢您的帮助!

var crypto = require('crypto');
var fs = require('fs');
var AWS = require('aws-sdk'); 
var s3 = new AWS.S3(); 

exports.handler = (event, context, callback) => {

 var params = {
    Bucket: 'bucket_name',
    Key: 'key', 
 };

var hash = crypto.createHash('md5');
var stream = s3.getObject(params, function(err, data) {
  if (err){
    console.log(err);
    return;
  }
}).createReadStream();

stream.on('data', function (data) {
    hash.update(data, 'utf-8')
})

stream.on('end', function () {
    console.log(hash.digest('hex'))
})

};
Run Code Online (Sandbox Code Playgroud)

md5 node.js aws-lambda

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