AWS S3获取对象无法读取整个文件

时间:2019-02-23 17:13:55

标签: amazon-web-services amazon-s3

我正在读取包含JSON文本的S3对象。对于少数元素(如4),这很好用。

稍长一点之后(我的意思是文件总大小小于1 MB!)文件被切碎了。

我认为get_object方法给出了整个对象。我想念的是整个对象没有被读取。

 s3client=boto3.client('s3',config=Config(signature_version='s3v4'))
 Obj = s3client.get_object(Bucket=x, Key=y)
 jobStream=Obj['Body'].read().decode('utf-8')
 jsonObj=json.loads(jobStream)
 print(json.dumps(jsonObj,indent=2))

JSON格式正确...输出被随机截断。

2 个答案:

答案 0 :(得分:0)

我可能的建议如下;

  1. 类似于您已经拥有的

    lst = [['file1', 1], ['file2', 0], ['file3', 7], ['file4', 0]]
    new_lst = [] # a new list, containing only the filenames if the number in col 2 was >0
    for row in lst:
        if row[1] > 0:
            new_lst.append(row)
    
  2. 使用对象获取文件

    s3client=boto3.client('s3',config=Config(signature_version='s3v4'))
    Obj = s3client.get_object(Bucket=x, Key=y)
    text=Obj["Body"].read().decode()
    print(text['anything']) # Use your desired JSON Key for your value
    

答案 1 :(得分:0)

忽略我上传的文件错误,目录错误