ファイル (この場合は audio/mp3) を App Engine ブロブストアに保存しようとしていますが、うまくいきません。すべてが機能しているように見え、ファイルは適切なタイプのブロブストアに保存されますが、本質的に空 (1.5kB 対予想される 6.5kB) であるため、再生されません。問題の URL はhttp://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=revenues+in+new+york+were+56+millionです。
アプリ エンジンのログに異常は見られません。すべての部分が期待どおりに実行されています。ご指摘いただければ幸いです。
class Dictation(webapp2.RequestHandler):
def post(self):
sentence = self.request.get('words')
# Google Translate API cannot handle strings > 100 characters
sentence = sentence[:100]
# Replace the non-alphanumeric characters
# The spaces in the sentence are replaced with the Plus symbol
sentence = urllib.urlencode({'q': sentence})
# Name of the MP3 file generated using the MD5 hash
mp3_file = hashlib.md5(sentence).hexdigest()
# Save the MP3 file in this folder with the .mp3 extension
mp3_file = mp3_file + ".mp3"
# Create the full URL
url = 'http://translate.google.com/translate_tts?ie=UTF-8&tl=en&' + sentence
# upload to blobstore
mp3_file = files.blobstore.create(mime_type = 'audio/mp3', _blobinfo_uploaded_filename = mp3_file)
mp3 = urllib.urlopen(url).read()
with files.open(mp3_file, 'a') as f:
f.write(mp3)
files.finalize(mp3_file)
blob_key = files.blobstore.get_blob_key(mp3_file)
logging.info('blob_key identified as %s', blob_key)