1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
"""file utilities for askbot"""
import os
import random
import time
import urlparse
from django.core.files.storage import get_storage_class
def store_file(file_object, file_name_prefix = ''):
"""Creates an instance of django's file storage
object based on the file-like object,
returns the storage object, file name, file url
"""
file_name = str(
time.time()
).replace(
'.',
str(random.randint(0,100000))
) + os.path.splitext(file_object.name)[1].lower()
file_name = file_name_prefix + file_name
file_storage = get_storage_class()()
# use default storage to store file
file_storage.save(file_name, file_object)
file_url = file_storage.url(file_name)
parsed_url = urlparse.urlparse(file_url)
file_url = urlparse.urlunparse(
urlparse.ParseResult(
parsed_url.scheme,
parsed_url.netloc,
parsed_url.path,
'', '', ''
)
)
return file_storage, file_name, file_url
|