运行Python脚本从AmazonS3检索文件链接

运行Python脚本从AmazonS3检索文件链接,python,django,amazon-s3,Python,Django,Amazon S3,我有mp3文件存储在AmazonS3中,我有一个MySQL数据库,其中有一个名为Songs的表。我想运行一个Python脚本,通过转到AmazonS3更新我的数据库,检索mp3文件的详细信息(例如使用ID3),然后填充数据库中的歌曲表。我用的是Django。是否有任何方法允许我通过简单的点击“更新库”按钮(例如通过Django管理面板)来运行这个脚本?另外,是否可以按计划运行它 另外,我对Django和Amazon S3都是新手 编辑: 我写了一个小脚本,从本地机器的mp3文件中获取元标记。下面

我有mp3文件存储在AmazonS3中,我有一个MySQL数据库,其中有一个名为Songs的表。我想运行一个Python脚本,通过转到AmazonS3更新我的数据库,检索mp3文件的详细信息(例如使用ID3),然后填充数据库中的歌曲表。我用的是Django。是否有任何方法允许我通过简单的点击“更新库”按钮(例如通过Django管理面板)来运行这个脚本?另外,是否可以按计划运行它

另外,我对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()
我想找到一种方法在Django上运行这个脚本,即使ti在本地运行。我希望我的观点更清楚


提前谢谢

你需要看一看,并想知道如何做你想做的事。django存储使取代django的文件存储机制变得非常简单,这样您就可以将IMAE/文件直接上传到S3的存储桶中

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


希望这对您有所帮助。

事实上,我不需要将数据存储在Django上(根据我在您的帖子中的理解),但我需要从Amazon S3(或首先是本地机器)检索数据,然后将这些数据上传到运行Django的MySQL数据库上。请阅读我编辑的帖子!谢谢,我不明白为什么你不能用Boto来读取S3存储桶中的对象,然后做任何你想做的事情。实际上我还没有尝试过。我试图在本地运行脚本,首先在本地机器中从音乐中获取标签,我的第一个问题是我不知道如何首先在本地运行它,作为一个单独的脚本或其他东西,明白我的意思吗?在本地运行它,就像在Django应用程序中一样?如果需要Django应用程序的上下文,可以将Django环境设置为脚本的一部分,也可以创建一个管理命令并使用manage.py运行它,甚至可以在视图中运行代码;有几种选择。这取决于什么最适合你的应用程序,没有“正确”的方法,给出你问题的上下文。