Отправка больших zip-файлов на сервер Django/Tastypie
Я хочу отправить несколько zip-файлов с raspberry Pi на мой сервер windows. Размер zip-файлов составляет около 2 ГБ каждый.
Я использую сокеты python для их отправки.
def sendFile():
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('Socket created')
s.connect(("http://192.168.0.21:8000/api/v1/ziptest/", 8000))
print("Connected")
for x in range(len(zipTypes)):
filename = '/logs/rel_5_0608.3800_val2/{}.zip'.format(zipTypes[x])
print("filename {} ".format(filename))
with open(filename,'rb') as infile:
d = infile.read(1024)
while d:
s.send(d)
d = infile.read(1024)
infile.close()
Затем у меня есть моя функция ресурса:
class ResponseZipTest(ModelResource):
class Meta:
limit = 100000
queryset = TestZipModel.objects.all()
resource_name = "ziptest"
authorization = Authorization()
always_return_data = True
# Hydration function
def hydrate(self, bundle):
print("Server is ready to receive")
def dehydrate(self, bundle):
return bundle
Когда я запускаю sendTest()
, я получаю Name or service not known
, но я могу использовать curl
на этом URL. Моя функция ресурса никогда не запускается.
Мой файл url:
v1_api = Api(api_name='v1')
v1_api.register(ResponseZipTest())
test_model = ResponseZipTest()
urlpatterns = [
url(r'^api/', include('api.urls')),
url(r'^api/', include(v1_api.urls)),
url(r'^api/', include(test_model.urls))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Являются ли сокеты лучшим способом передачи этих файлов? Есть ли другой метод, который упростит это?