Last active
July 23, 2022 05:28
Unity3D WebGL + AWS S3: Set correct content-type and content-encoding
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# coding: utf-8 | |
# Sets the correct content-type and content-encoding for Unity3D files. | |
# @see https://forum.unity.com/threads/changes-to-the-webgl-loader-and-templates-introduced-in-unity-2020-1.817698/#post-5716621 | |
import boto3 | |
bucket_id = 'unity-model' | |
folder_prefix = 'model' | |
# Configure files and content-types | |
unity_objs = [ | |
{ | |
'key': folder_prefix + '/Build/model.data.gz', | |
'content_type' : 'application/octet-stream' | |
}, | |
{ | |
'key': folder_prefix + '/Build/model.framework.js.gz', | |
'content_type' : 'application/javascript' | |
}, | |
{ | |
'key': folder_prefix + '/Build/model.wasm.gz', | |
'content_type' : 'application/wasm' | |
}, | |
] | |
# Connect to S3 | |
s3 = boto3.resource( 's3' ) | |
# Set meta data | |
for obj in unity_objs : | |
s3_obj = s3.Object( bucket_id, obj['key'] ) | |
try : | |
response = s3_obj.copy_from( CopySource={ 'Bucket' : bucket_id, | |
'Key' : obj['key'] }, | |
ContentType=obj['content_type'], | |
ContentEncoding='gzip', | |
MetadataDirective='REPLACE' ) | |
if ( response['ResponseMetadata']['HTTPStatusCode'] == 200 ) : | |
print( 'SUCCESS - ' + obj['key'] ) | |
else : | |
print( 'ERROR - ' + obj['key'] ) | |
except : | |
print( 'ERROR - ' + obj['key'] ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment