草庐IT

python - 如何使用 python boto 获取亚马逊 S3 中唯一文件夹的列表?

我正在使用boto、python和amazons3。如果我使用[key.nameforkeyinlist(self.bucket.list())]然后我得到所有文件的所有key。mybucket/files/pdf/abc.pdfmybucket/files/pdf/abc2.pdfmybucket/files/pdf/abc3.pdfmybucket/files/pdf/abc4.pdfmybucket/files/pdf/new/mybucket/files/pdf/new/abc.pdfmybucket/files/pdf/2011/什么是最好的方法1.eithergetallf

python - 如何使用 boto 将文件从 Amazon S3 流式传输到 Rackspace Cloudfiles?

我正在将文件从S3复制到Cloudfiles,并且我想避免将文件写入磁盘。Python-Cloudfiles库有一个object.stream()调用,看起来是我需要的,但我在boto中找不到等效调用。我希望我能够做类似的事情:shutil.copyfileobj(s3Object.stream(),rsObject.stream())boto(或者我想任何其他s3库)可以做到这一点吗? 最佳答案 此线程中的其他答案与boto有关,但S3.Object在boto3中不再可迭代。因此,以下内容不起作用,它会产生TypeError:'s

python - 您可以使用流而不是本地文件上传到 S3 吗?

我需要创建一个CSV并将其上传到S3存储桶。由于我是动态创建文件的,如果我可以在创建文件时直接将其写入S3存储桶,而不是在本地写入整个文件,然后在最后上传文件,那会更好。有没有办法做到这一点?我的项目是用Python编写的,而且我对这门语言还很陌生。到目前为止,这是我尝试过的:importcsvimportcsvimportioimportbotofromboto.s3.keyimportKeyconn=boto.connect_s3()bucket=conn.get_bucket('dev-vs')k=Key(bucket)k.key='foo/foobar'fieldnames=[

python - s3 urls - 获取存储桶名称和路径

我有一个具有awss3url的变量s3://bucket_name/folder1/folder2/file1.json我想在一个变量中获取bucket_name并在另一个变量中休息,即/folder1/folder2/file1.json。我尝试了正则表达式,可以得到如下的bucket_name,不知道是否有更好的方法。m=re.search('(?我如何获得其余部分,即-folder1/folder2/file1.json?我检查了是否有boto3功能可以从url中提取bucket_name和key,但找不到。 最佳答案 由于只

python - 从 S3 下载文件时,AWS Lambda 中出现错误 "Read-only file system"

当我将file.csv放入S3存储桶时,我的lambda函数出现以下错误。该文件并不大,我什至在打开文件进行读取之前添加了60秒的sleep时间,但由于某种原因,该文件附加了额外的“.6CEdFe7C”。这是为什么呢?[Errno30]Read-onlyfilesystem:u'/file.csv.6CEdFe7C':IOErrorTraceback(mostrecentcalllast):File"/var/task/lambda_function.py",line75,inlambda_handlers3.download_file(bucket,key,filepath)File

python - 为 Airflow 中的日志设置 s3

我正在使用docker-compose来设置一个可扩展的Airflow集群。我的方法基于这个Dockerfilehttps://hub.docker.com/r/puckel/docker-airflow/我的问题是将日志设置为从s3写入/读取。当一个dag完成时,我会收到这样的错误***Logfileisn'tlocal.***Fetchinghere:http://ea43d4d49f35:8793/log/xxxxxxx/2017-06-26T11:00:00***Failedtofetchlogfilefromworker.***Readingremotelogs...Coul

python : list index out of range error while iteratively popping elements

我写了一个简单的python程序l=[1,2,3,0,0,1]foriinrange(0,len(l)):ifl[i]==0:l.pop(i)这给了我第ifl[i]==0:行上的错误“列表索引超出范围”调试后我发现i正在增加,列表正在减少。但是,我有循环终止条件i.那为什么我会收到这样的错误? 最佳答案 您正在缩短列表的长度l当您对其进行迭代时,当您接近range语句中索引的末尾时,其中一些索引不再有效。它看起来你想要做的是:l=[xforxinlifx!=0]这将返回l的副本没有任何为零的元素(顺便说一下,该操作称为listcom

python - 如何轻松确定 Boto 3 S3 存储桶资源是否存在?

例如,我有这样的代码:importboto3s3=boto3.resource('s3')bucket=s3.Bucket('my-bucket-name')#Doesitexist??? 最佳答案 在撰写本文时,还没有高级方法可以快速检查存储桶是否存在并且您可以访问它,但是您可以对HeadBucket操作进行低级调用。这是进行此检查的最便宜的方法:frombotocore.clientimportClientErrortry:s3.meta.client.head_bucket(Bucket=bucket.name)exceptC

python - 使用 Django 将文件异步上传到 Amazon S3

我正在使用这个文件存储引擎在上传文件时将文件存储到AmazonS3:http://code.welldev.org/django-storages/wiki/Home上传需要相当长的时间,因为文件必须先从客户端上传到Web服务器,然后再将Web服务器上传到AmazonS3,然后才会向客户端返回响应。我想让发送文件到S3的过程是异步的,这样响应可以更快地返回给用户。使用文件存储引擎执行此操作的最佳方法是什么?感谢您的建议! 最佳答案 我对这个问题采取了另一种方法。我的模型有2个文件字段,一个使用标准文件存储后端,另一个使用s3文件存储

python - Boto - 将文件上传到 Amazon S3 上的特定位置

这是我正在使用的代码importsysimportbotoimportboto.s3#AWSACCESSDETAILSAWS_ACCESS_KEY_ID=''AWS_SECRET_ACCESS_KEY=''bucket_name=AWS_ACCESS_KEY_ID.lower()+'-mah-bucket'conn=boto.connect_s3(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)bucket=conn.create_bucket(bucket_name,location=boto.s3.connection.Location.DEFAUL