尝试将mp4文件上传到Amazon S3服务器,然后上传。下载时,它的大小完全相同,但字节42,43,44会发生变化。
抬头看那是mdat。 http://www.file-recovery.com/mp4-signature-format.htm
我尝试将mime类型更改为各种类型,甚至还将扩展名更改为exe。没有运气..
尝试播放视频时,它不起作用。
我正在使用boto python框架来执行此操作。
有什么想法吗?
# Uploads a file to a bucket
def upload_file_to_bucket(self, file_path_on_disk, file_name_in_bucket, bucket_name):
self.remove_file_from_bucket(file_name_in_bucket, bucket_name)
if os.path.exists(file_path_on_disk):
print "Uploading " + file_path_on_disk + " to " + file_name_in_bucket + " in bucket " + bucket_name
bucket = self.get_connection().get_bucket(bucket_name)
k = bucket.new_key(file_name_in_bucket)
k.set_contents_from_filename(file_path_on_disk, headers = {'Content-Type' : 'application/octet-stream', 'Body' : 'data'}) # {'Content-Disposition': 'attachment', 'Content-Type' : 'video/mp4'}) headers = {'Content-Type' : 'application/octet-stream'}
k.set_acl('public-read')
print "Uploaded file to amazon server " + bucket_name
else:
print "File does not exist so cannot upload " + file_path_on_disk
编辑: 进一步看。似乎还有更多的腐败。狡猾的负载均衡器?
是否有可能确保文件正确上传?目前,这总是错误的。
编辑:
这是因为如果有人遇到此文件,则在上传之前文件没有完全写入。
答案 0 :(得分:1)
正确的内容类型为video/mp4
,您可以通过这两种方式将其设置为
data = open('file.mp4', 'rb')
bucket.put_object(Key='file.mp4', Body=data, ContentType='video/mp4')
确保在s3上传后正确设置了类型,导航到您的文件并检查属性/元数据。请注意,video/mp4
不在AWS的可用内容类型的下拉列表中,但您可以通过编写所需内容来强制它