1

昨日投稿した質問の続きをしたいです。いくつかのビデオ クリップを Amazon s3 にアップロードしたいと考えています。これらのビデオは、中間結果として生成されます。そのため、これらの小さなビデオ クリップをメモリ (約 400 ~ 500 KB) に保存してから、それぞれを s3 にアップロードすることを好みます。アップロード後、一時ファイルをメモリから削除できます。したがって、一時ファイルを使用したいと思います。しかし、次のコードにはエラーがあります。見て、正しく行う方法を教えてください。

  @contextmanager
    def s3upload(key):
       with tempfile.SpooledTemporaryFile(max_size=1021*1000) as buffer:
          yield buffer
          buffer.seek(0)
         # key.send_file(buffer)
          k.set_contents_from_file(buffer)
          k.set_acl('public-read')


conn = boto.connect_s3()
b = conn.get_bucket('cc_test_s3')
k = Key(b)
k.key = '1.flv'
mime = mimetypes.guess_type('1.flv')[0]

with s3upload(k) as out:
    out.write('1.flv')

出力:

The size of file uploaded is 5 KB, which is much less than the actual size of 1.flv (~400 KB). 
4

1 に答える 1

0

s3fuse を使用することをお勧めします。これは基本的に s3 バケットをローカル ドライブにマウントし、ローカル ディレクトリに保存しているかのようにファイルを直接保存できます。参考までに、s3fuse - google-codeをご覧ください。

于 2012-09-26T17:23:46.647 に答える