【问题标题】:How to download files from S3 to a custom folder or a network path using boto3如何使用 boto3 将文件从 S3 下载到自定义文件夹或网络路径
【发布时间】:2022-08-24 17:40:03
【问题描述】:

以下是从 S3 存储桶下载文件的功能。 但问题是我找不到如何将这些文件定向到网络路径而不是下载到项目文件夹中,而无法控制必须下载文件的位置。

import boto3
import config
import os
import win32api

def download_all_objects_in_folder():
 #= boto3.resource(\'s3\')
s3_resource = boto3.resource(\'s3\', aws_access_key_id=config.AWS_BUCKET_KEY, aws_secret_access_key=config.AWS_BUCKET_SECRET_KEY) 
my_bucket = s3_resource.Bucket(config.BUCKET)
# Create the folder logic here
objects = my_bucket.objects.filter(Prefix=\'Export_20181104/\')
for obj in objects:
    path, filename = os.path.split(obj.key)
    my_bucket.download_file(obj.key, filename,\"C:\\Other\")
    #win32api.MessageBox(0, obj.key, \'title\')

print(\"imports completed\")

更新: 这是我通过自定义路径时遇到的错误。

ValueError: Invalid extra_args key \'C\', must be one of: ChecksumMode, 
VersionId, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, 
RequestPayer, ExpectedBucketOwner
  • 共享文件夹的路径应该和本地路径一样添加。如果您的用户有权访问该路径,Windows 将识别该路径。
  • @GabrielDantas 感谢您的回复,我想知道在上面的代码中传递位置的选项在哪里? (本地或共享)。如果您以前尝试过,请告诉我。

标签: python amazon-web-services amazon-s3 boto3


【解决方案1】:

下载指定 S3 对象的 Python 或 Boto3 SDK 没有区别,无论是本地还是网络位置。

这个问题取决于操作系统。

下载到网络位置,就像下载到本地位置一样。

【讨论】:

  • 感谢您的回复,我想知道在上面的代码中传递位置的选项在哪里? (本地或共享)。如果您以前尝试过,请告诉我。
  • shared path or local path here 替换为您的路径?
  • 我已替换请查找更新后的问题(刷新页面)。它抛出了一些错误。
猜你喜欢
  • 2018-09-21
  • 2020-11-17
  • 2021-11-06
  • 1970-01-01
  • 2019-05-13
  • 2017-07-29
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
相关资源
最近更新 更多