0

Botoを使用してAmazonS3に保存されているファイルからmp3タグを取得しようとしています。これが私のスクリプトです:

import boto
from boto.s3.connection import S3Connection
import eyeD3

def main():
conn = S3Connection('______', '_________')
myBucket = conn.get_bucket('bucketName')

for key in skempi.list():
    if eyeD3.isMp3File(key.name):
        audio = eyeD3.Mp3AudioFile(key.name)

if __name__ == '__main__':
    main()

ただし、バケット内のすべてのファイルなどを一覧表示することはできます。私が得ているエラーは

IOError: [Errno 2] No such file or directory: u'ulver/01 Track 1.mp3'

コードに問題はありますか?

4

3 に答える 3

1

mp3 ファイルのメタデータをローカル ドライブから取得し、(Boto API を使用して) Amazon S3 に曲をアップロードし、権限を「公開」に設定し、URL を生成して、URL と金属データを保存するスクリプトを作成する必要がありました。 MySQL データベース。したがって、同じ問題が発生した場合に備えて、曲をアップロードしてからデータベースの更新を実行する必要がないため、これで問題が解決しました。

于 2012-05-03T17:18:48.517 に答える
1

S3 からダウンロードせにファイルからタグを取得する方法はありません。

EC2 を使用してファイルまたはAmazons Elastic MapReduceを処理することを検討するかもしれませんが、それでもファイルをダウンロードしてタグを読み取ることになります。

于 2012-04-30T15:20:16.803 に答える
1

key.name を eyeD3 関数に渡していますが、eyeD3.Mp3AudioFile の呼び出しにはファイルのようなオブジェクトが必要だと思います。私は eyeD3 を使用したことがなく、pip 経由でインストールしたくないようです。

for key in skempi.list():
    if eyeD3.isMp3File(key.name):
        audio = eyeD3.Mp3AudioFile(key)
于 2012-04-30T12:08:25.477 に答える