2012-04-21 65 views
0

我有存储在Amazon S3中的mp3文件,并且我有一个名为Songs的表格的MySQL数据库。我想运行一个Python脚本,通过转到Amazon S3更新我的数据库,检索mp3文件的详细信息(例如使用ID3),然后填充数据库中的Songs表。我正在使用Django。有没有什么方法可以让我通过简单的点击“更新库”按钮来运行这个脚本,例如通过Django管理面板?另外,是否有可能按计划运行?运行Python脚本从Amazon S3检索文件链接

P.S我是新来的都Django和亚马逊S3

编辑: 我写了一个小脚本,抓住从mp3文件的meta标签在我的本地机器。这里是它的代码:

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() 

我想找到一种方法来在Django上运行这个脚本,即使是本地的。我希望我的观点更清楚。

在此先感谢!

回答

0

您需要查看Boto以及django-storages,了解如何进行自己想要的操作。 django-storages使它变得简单 - 替换Django的FileStorage机制,以便您可以在S3中将imaes/files直接上传到您的存储桶。

从S3读取数据库对象并更新您的数据库对象正好相反,但Boto使连接到存储桶和读取信息变得简单。

希望能帮助你。

+0

事实上,我不需要在Django上存储数据(从我在你的文章中理解的内容),但我需要从Amazon S3(或本地机器)检索数据,然后将这些数据上传到MySQL数据库与Django一起运行。请阅读我编辑的帖子!谢谢 – 2012-04-22 18:47:24

+0

当然,我不明白为什么你不能使用Boto来读取S3存储桶中的对象,然后做任何你喜欢的事情。 – Brandon 2012-04-23 02:41:39

+0

我没有尝试过,但实际上。我试图在本地运行脚本,首先从本地机器的音乐中获取标签,我的第一个问题是我不知道如何首先在本地运行它,作为单独的脚本或其他东西,knwo我的意思是什么? – 2012-04-23 05:39:21