相关疑难解决方法(0)

如何在亚马逊的S3上获取文件的md5sum

如果我在亚马逊的S3上有现有文件,那么在不下载文件的情况下获取md5sum的最简单方法是什么?

谢谢

amazon-s3

65
推荐指数
6
解决办法
7万
查看次数

为大于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万
查看次数

boto获取md5 s3文件

我有一个用例,我使用多部分uplaod上传数百个文件到我的S3桶.每次上传后,我需要确保上传的文件没有损坏(基本上检查数据完整性).目前,在上传文件后,我重新下载并计算内容字符串上的md5,并将其与本地文件的md5进行比较.所以像

conn = S3Connection('access key', 'secretkey')
bucket = conn.get_bucket('bucket_name')
source_path = 'file_to_upload'
source_size = os.stat(source_path).st_size

mp = bucket.initiate_multipart_upload(os.path.basename(source_path))
chunk_size = 52428800
chunk_count = int(math.ceil(source_size / chunk_size))

for i in range(chunk_count + 1):
   offset = chunk_size * i
   bytes = min(chunk_size, source_size - offset)
   with FileChunkIO(source_path, 'r', offset=offset,
                 bytes=bytes) as fp:
       mp.upload_part_from_file(fp, part_num=i + 1, md5=k.compute_md5(fp, bytes))
mp.complete_upload()

obj_key = bucket.get_key('file_name')
print(obj_key.md5) #prints None
print(obj_key.base64md5) #prints None

content = bucket.get_key('file_name').get_contents_as_string()
# compute the md5 on content
Run Code Online (Sandbox Code Playgroud)

这种方法浪费,因为它使带宽使用量增加了一倍.我试过了

bucket.get_key('file_name').md5 
bucket.get_key('file_name').base64md5 
Run Code Online (Sandbox Code Playgroud)

但都返回无.

有没有其他方法来实现md5而不下载整个东西?

md5 amazon-s3 boto

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

如何使用boto以编程方式获取Amazon S3文件的MD5校验和

推荐帖子: Amazon S3和Checksum, 如何在BASH中将md5 sum编码为base64

我必须从S3存储桶下载具有有限访问权限的tar文件.[主要是仅下载的访问权限]

下载后,我必须检查下载文件的md5校验和,以及在S3中作为元数据存在的数据的MD5-Check Sum

我目前使用S3文件浏览器手动记录内容标题的"x-amz-meta-md5",并根据下载文件的计算md5验证该值.

我想知道是否有编程方式使用boto捕获S3文件的md5哈希值,如元数据所述.

from boto.s3.connection import S3Connection

conn = S3Connection(access_key, secret_key)
bucket=conn.get_bucket("test-bucket")
rs_keys = bucket.get_all_keys()
for key_val in rs_keys:
    print key_val, key_val.**HOW_TO_GET_MD5_FROM_METADATA(?)**
Run Code Online (Sandbox Code Playgroud)

如果我的理解是错误的,请更正.我正在寻找一种以编程方式捕获标头数据的方法

python md5 amazon-s3 boto python-2.7

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

检查 S3 复制操作是否成功?

我正在尝试使用 Amazon S3 Java API 实现移动操作。

我遇到的问题是CopyObjectResultAmazonS3Client.copyObject方法返回的对象似乎没有明确指示操作是否成功。

鉴于此操作后我将删除一个文件,我想确保操作成功。

有什么建议?

java amazon-s3

5
推荐指数
1
解决办法
3332
查看次数

如何在不使用boto3下载的情况下检查本地文件是否与S3对象相同?

如何在不下载的情况下检查本地文件是否与S3中存储的文件相同?为了避免一次又一次下载大文件。S3对象具有电子标签,但是如果文件是部分上传的,则它们很难计算,并且该问题的解决方案似乎不起作用。有没有更简单的方法来避免不必要的下载?

python amazon-s3 amazon-web-services boto3

5
推荐指数
1
解决办法
2749
查看次数

标签 统计

amazon-s3 ×6

boto ×2

md5 ×2

python ×2

amazon-web-services ×1

boto3 ×1

java ×1

python-2.7 ×1

s3cmd ×1