簡體   English   中英

Luigi直接將文件寫入S3

[英]Luigi write file directly to S3

我正在用Luigi創建一個數據管道,我正在嘗試將處理后的數據直接寫入S3存儲桶。 我使用的代碼是:

import luigi
from luigi.s3 import S3Target, S3Client

class myTask(luigi.Task):
    def requires(self):
        return otherTask()

    def output(self):
        client = S3Client('ACCESS_KEY', 'SECRET_KEY')
        return S3Target('s3.amazonaws.com/mybucket/myfolder/myfile.tsv', client=client)

    def run(self):
         fo = self.output().open('w')
         with self.input().open('r') as f:
            data = dosomething_to_input(f)
            fo.write(data)
         fo.close()

運行腳本后,我得到錯誤:

S3ResponseError: S3ResponseError: 405 Method Not Allowed

我們可以直接將文件寫入S3存儲桶嗎?

問題解決了! 這是因為s3 buckt的格式。 正確的格式應為's3:// mybucket / myfile'405 ERROR是由boto無法識別存儲桶名稱引起的。 另外需要提一下boto不能用'。'識別桶名。 在Python 2.7。*中,所以你必須使用有效的存儲桶名稱或在配置文件中更改它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM