If your browser downloads a zero byte object and you get a 301 HTTP response code when accessing a directory, such as http://www.example.com/dir/, your bucket most likely contains an empty object of that name.
To check that this is the case and fix the issue:
Open the Cloud Storage browser in the Google Cloud Platform Console.
Click the Activate Cloud Shell button at the top of the Google Cloud Platform Console.
Run gsutil ls -R gs://www.example.com/dir/. If the output includes http://www.example.com/dir/, you have an empty object at that location.
Remove the empty object with the command: gsutil rm gs://www.example.com/dir/
You can now access http://www.example.com/dir/ and have it return that directory's index.html file instead of the empty object.