0

Amazon S3 に保存されている mp3 ファイルがあり、Songs というテーブルを持つ MySQL データベースがあります。Amazon S3 にアクセスしてデータベースを更新し、mp3 ファイルの詳細を取得して (たとえば ID3 を使用)、データベースの Songs テーブルに入力する Python スクリプトを実行したいと考えています。私はジャンゴを使用しています。たとえばDjango管理パネルから「ライブラリの更新」ボタンをクリックするだけで、このスクリプトを実行できる方法はありますか? また、スケジュール通りの運用は可能ですか?

PS私はDjangoとAmazon S3の両方が初めてです

編集: ローカル マシンの mp3 ファイルからメタ タグを取得する小さなスクリプトを作成しました。そのコードは次のとおりです。

import eyeD3
import sys
import urllib
import os

class Track():
    def __init__(self, audioFile):
        self.title = audioFile.getTag().getTitle()
        self.artist = audioFile.getTag().getArtist()
        self.year = audioFile.getTag().getYear()
    self.genre = audioFile.getTag().getGenre()
    self.length = audioFile.getPlayTimeString()
    self.album = audioFile.getTag().getAlbum()

def main():
    for root, dirs, files in os.walk('.'):
        for f in files:
            if eyeD3.isMp3File(f):
                audioFile = eyeD3.Mp3AudioFile(root+'/'+f)
                t = Track(audioFile)
                print t.artist," ",t.title, " ", t.length, " ", t.album, " ", t.genre    




if __name__ == '__main__':
    main()

ti がローカルであっても、Django でこのスクリプトを実行する方法を見つけたいと思います。私の主張がより明確になることを願っています。

前もって感謝します !

4

1 に答える 1

0

やりたいことを行う方法については、 Botodjango-storagesを確認する必要があります。django-storagesを使用すると、DjangoのFileStorageメカニズムを簡単に置き換えることができるため、S3でimaes/ファイルをバケットに直接アップロードできます。

S3からの読み取りとデータベースオブジェクトの更新は正反対のワークフローですが、Botoを使用すると、バケットに接続して情報を読み取ることが簡単になります。

それがあなたを助けることを願っています。

于 2012-04-22T04:39:33.697 に答える