Botoを使用してAmazon S3に保存されているファイルからmp3タグを取得しようとしています。ここで は私のスクリプトです:Amazon S3のファイルから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'
私のコードに問題はありますか?
いいえ、パラメーターに文字列が必要なため、機能しません。私の問題は、バケツ内の各ファイルのパスを取得できなかったことです。 –
文字列が必要な場合は、その文字列をローカルファイルへのパスにする必要があります。その場合、唯一のオプションは、S3から(key.get_contents_to_filenameを使用して)ローカルファイルシステムにファイルをコピーしてから、ローカルファイルへのパスをMp3AudioFileクラスに渡すことです。 – garnaat
さて、これらのファイルのパス+ mp3メタデータを取得して、Djangoアプリケーション用のMySQLデータベースに保存する必要があります。後で私のウェブサイトでそれらを再生することができます。非ローカルファイルからタグを読み取ることができる他のライブラリ(eyeD3以外)がありますか? –