Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
......
def trash_purge(request):
return generic_op(TrashPurgeForm, request, request.fs.purge_trash, [], None)
#gooper 2026.5.21
ALLOWED_EXTENSIONS={'.csv','.txt','.parquet','.json','.avro','.orc'}
@require_http_methods(["POST"])
def upload_file(request):
"""
A wrapper around the actual upload view function to clean up the temporary file afterwards if it fails.
Returns JSON. e.g. {'status' 0/1, data:'message'...} """
response = {'status': -1, 'data': ''}
#gooper start
if request.method == 'POST':
upload = request.FILES.get('hdfs_file')
if upload:
import os
ext = os.path.splitext(upload.name)[1].lower()
if ext not in ALLOWED_EXTENSIONS:
logger.exception('gooper : extention ('+ext+') is not supported : ')
response['status']=-1
response['data']='지원되지 않는 확장자입니다: '+ext
if upload and hasattr(upload, 'remove'):
upload.remove()
return JsonResponse(response)
#gooper end
try:
resp = _upload_file(request)
response.update(resp)
except Exception as ex:
logger.exception('Upload failure')
response['data'] = smart_str(ex).split('\n', 1)[0]
hdfs_file = request.FILES.get('hdfs_file')
if hdfs_file and hasattr(hdfs_file, 'remove'): # TODO: Call from proxyFS
hdfs_file.remove()
return JsonResponse(response)
def _upload_file(request):
......